带有马哈拉诺比斯度量的 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
如何将 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