【问题标题】:matlab Pdist2 with mahalanobis metric带有马氏度量的matlab Pdist2
【发布时间】:2018-01-25 13:01:45
【问题描述】:

如何将 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: 冠状病毒 =

 9     9     9
 9     9     9
 9     9     9

如何使用“mahalabobis”度量计算 pdist2?

【问题讨论】:

    标签: matlab matrix distance mahalanobis


    【解决方案1】:

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

    eig(covu)
    
    ans =
    
       -0.0000
        0.0000
       27.0000
    

    【讨论】:

    • 好的。谢谢,但是我如何使用“mahalanobis”度量来计算 pdist2?或者如何计算两个矩阵之间的'mahalanobis'距离?
    • 你可以像刚才那样做,你只需要提供一个对称正定矩阵而不是covu,它是not浪涌保护器。马氏距离仅针对 SPD 矩阵定义(矩阵需要是可逆的,请参阅on WP)。
    猜你喜欢
    • 2013-11-24
    • 2016-04-21
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    相关资源
    最近更新 更多