matlab Pdist2 with mahalanobis metric

时间:2018-01-25 13:01:46

标签: matlab matrix distance mahalanobis

如何将pdist2与'mahalanobis'指标一起使用? 我写这段代码:

u=[1 2 3; 4 5 6; 7 8 9];
n=[1 2 5;2 5 7;5 7 9];
covu=nancov(u);

Z=pdist2(u,u,'mahalanobis',covu);

但是我收到了这个错误:

??? Error using ==> pdist2 at 298
The covariance matrix for the Mahalanobis metric must be symmetric and positive definite.

Error in ==> Untitled at 5
Z=pdist2(u,u,'mahalanobis',covu); 

虽然变量'covuu'是对称矩阵,也是正数。这是covu: covu =

 9     9     9
 9     9     9
 9     9     9

如何使用“mahalabobis”指标计算pdist2?

1 个答案:

答案 0 :(得分:1)

矩阵必须是正定,这与具有正条目的不同。在对称矩阵的情况下,这意味着所有特征值必须是正的。但在你的情况下,矩阵只有1级。如果计算特征值,你会看到两个特征值为零:

eig(covu)

ans =

   -0.0000
    0.0000
   27.0000