2017-07-04 94 views
0

我有一个数据集,每个样本和25个变量有5个重复。 我想使用这些参数在所有样本之间制作一个马哈拉诺比斯距离矩阵。我使用了“mahal”函数,但是这给出了每个重复的所有距离的向量。如何制作样本间距(38 * 38)而不是矢量(1 * 190)之间的距离矩阵?如何在MATLAB中创建Mahalanobis距离矩阵?

回答

0

对于一些测试数据:

X = rand(38,25); % some random test data with 38 observations and 25 variables 
X = repmat(X,5,1); % 5 duplicates of each observation 

你可以使用:

X = unique(X,'rows'); % remove duplicate observations 
D = pdist(X,'mahalanobis'); % distance between all remaining observations 
Z = squareform(D); % to square matrix format