gpt4 book ai didi

matlab - Matlab 中的马氏距离

转载 作者:行者123 更新时间:2023-12-04 05:50:04 25 4
gpt4 key购买 nike

我试图从原点找到一些点的马哈拉诺比斯距离。 MATLAB 命令是 mahal(Y,X)

但是如果我使用它,我会得到 NaN 作为矩阵 X =0 因为需要从原点找到距离。有人可以帮我解决这个问题。应该怎么做

最佳答案

我想你对什么有点困惑 mahal()正在做。首先,计算马哈拉诺比斯距离需要一组点,从这些点可以计算协方差。

Matlab docs for this function它清楚地表明正在计算的距离是:

d(I) = (Y(I,:)-mu)*inv(SIGMA)*(Y(I,:)-mu)'

哪里 muX 的总体平均值和 SIGMAX 的总体协方差矩阵.由于您的总体由一个点(原点)组成,因此它没有协方差,因此 SIGMA矩阵不可逆,因此在距离中获得 NaN/Inf 值的错误。

如果您知道要用于马哈拉诺比斯距离的协方差结构,那么您只需使用上面的公式自己计算即可。假设您关心的协方差存储在矩阵 S 中.你想要距离 w.r.t.原点,因此您无需从 Y 中的值中减去任何内容,您需要计算的是:
for ii = 1:size(Y,1)
d(ii) = Y(ii,:)*inv(S)*Y(ii,:)'; % Where Y(ii,:) is assumed to be a row vector.'
end

关于matlab - Matlab 中的马氏距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10181570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com