Matlab获得矢量和矩阵的距离

时间:2017-03-27 10:02:51

标签: matlab

我试图从矢量和矩阵中获得欧氏距离

dataTest= [1;2;3;4;5;6]

data = [01 02 03 04;
       05 06 07 08;
       09 10 11 12; 
       13 14 15 16;
       17 18 19 20;
       21 22 23 24] 

目前我运行此功能时: distance = pdist2(data ,dataTest)它返回

  

X和Y必须具有相同的列数。

我有什么建议可以解决这个问题以及为什么我的工作不起作用?

编辑:修正了 - 没有填满整个dataTest矩阵 - 必须遍历每一列。

1 个答案:

答案 0 :(得分:0)

正如@Luis所提到的,pdist2将为您提供更多信息,以及您不需要的计算,因为它计算所有距离,并且您实际上只需要每次迭代的矩阵结果的对角线。

相反,您可以准确计算出您需要的内容 - 向量dataTestdata的每列之间的欧氏距离:

  distance= sqrt(sum(bsxfun(@minus,dataTest,data).^2))

  distance=
  22.2486 24.3105 26.4386 28.6182