【问题标题】:How to find distance matrix in matlab如何在matlab中找到距离矩阵
【发布时间】:2014-01-21 08:01:16
【问题描述】:

我正在使用pdist2(x(i), y(j), 'euclidean') 公式来查找 x 和 y 之间的欧式距离,而不是手动方法

sqrt((x(i)-y(i))^2).

为了找到相关系数,我正在使用 corrcoeff( x(i), y(j)) 。这是找到x和y矩阵之间的相关系数和欧几里得距离的正确方法吗? 当我使用公式和手动方法时,我得到了不同的答案。

【问题讨论】:

  • 它看起来是正确的,但可能pdist2(x,y,'euclidean')pdist2(x(i),y(j),'euclidean') 更有意义。显示您的代码,以便我们了解问题所在。

标签: matlab euclidean-distance


【解决方案1】:

我认为这是不正确的。

我想xy 是矩阵,所以你使用pdist2 来计算观察i(来自x(i))和j em>(来自y(j))。在手动方法的情况下,您在两者中都使用了i 索引。 可能差异是由于索引 ij 的错误使用造成的。向我们展示您的代码,以便我们确认。

顺便说一句,正如@Luis 指出的那样,最好使用pdist2 同时计算所有距离(速度更快)。因此,如果您有两个矩阵 x 和 y,请使用:pdist2(x,y)

相关性也一样。

【讨论】:

    【解决方案2】:

    两个矩阵之间的相关性可以计算为:

    r = corr2(x,y)
    

    现在,如果您追求的是元素距离,那么:

    dist=gsqrt((x-y).^2);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-05
      • 1970-01-01
      • 2017-12-07
      • 1970-01-01
      • 2015-08-28
      • 1970-01-01
      相关资源
      最近更新 更多