计算存储在一个阵列中的所有点与第二个阵列的所有其他点的距离

时间:2016-01-27 11:32:17

标签: matlab image-processing

我需要计算存储在数组中的所有点的距离,该数组大小为< 17642065x2 double>其他数组的所有点的大小都是< 273839x2 double>。存储在两个数组中的点的形式为:

A =  341 45  456 32  987 10  4003 332  ......  ......  .... ....

B =  344 67  786 90  1234 47  3456 222  ......  ......  .... ....

我必须计算所有点的距离。例如,算法计算(341,45)和(344,67),然后(341,45)和(780,90),然后(341,45)和(1234,47)之间的距离,然后(341, 45)和(3456,222)然后(456 32)和(344,67)等等。非常感谢您的帮助

2 个答案:

答案 0 :(得分:3)

您可以使用Matlab's builtin pdist2 function

d = pdist2(A,B);

答案 1 :(得分:1)

我认为马歇尔在这个问题上的答案( Efficiently compute pairwise squared Euclidean distance in Matlab)回答你的问题。它甚至比pdist2更快,当您必须在多个阵列上进行此计算时,这可能很有用。