1

我在计算一对物体之间的马氏距离时遇到了一些麻烦。我遵循了 MATLAB 的文档,为了计算马氏距离,我必须使用 pdist2:“D = pdist2(X,Y,'mahalanobis',C)"

A1=[75 87 90]; A2=[99 88 100];
C = nancov(A1,A2);
D = pdist2(A1,A2,'mahalanobis',C)

这给了我错误:

使用 pdist2 时出错(第 282 行) Mahalanobis 度量的协方差矩阵必须是列数与 X 相同的方阵。并且它必须是对称且正定的。

另一方面,如果我尝试:

A1=[75 87 90]; A2=[99 88 100];
D = mahal(A1,A2)

我得到:

使用 mahal 时出错(第 38 行) X 的行数必须超过列数。

转置 A1,A2 我得到一个 3x1 矩阵,但我很确定我的值必须是一维的。任何帮助将不胜感激。

4

1 回答 1

0

对于一对对象,可以做的是首先将 X 矩阵标准化为 0 均值和 1 方差尺度,然后应用欧几里得距离

于 2019-02-05T10:05:41.363 回答