带有马哈拉诺比斯度量的 matlab Pdist2

matlab Pdist2 with mahalanobis metric

如何将 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 阶。如果你计算特征值,你会看到,两个特征值是零:

eig(covu)

ans =

   -0.0000
    0.0000
   27.0000