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矩阵 - 必须遍历每一列。

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

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

  distance= sqrt(sum(bsxfun(@minus,dataTest,data).^2))
  distance=
  22.2486 24.3105 26.4386 28.6182

最新更新