我有一个1000 x 3矩阵X
,在3D空间中包含1000个数据点。我可以在MATLAB中轻松生成项目项Mahalanobis距离矩阵:
X = random(1000, 3);
distMat = pdist(X, 'mahalanobis');
distMat = squareform(distMat);
其中(i
,j
)条目是点i
和点j
之间的距离。
现在我希望有一个类似的矩阵,其{(1}},i
)条目是所有点中基于距离点{{1}的点j
的等级}}。所以我称之为"项目 - 物品距离等级矩阵。"
我的想法是只对i
的每一行进行排序,并使用排序索引构建这个所需的矩阵,但这需要1000次排序操作。我相信这是一种更有效的方式。