我需要计算存储在数组中的所有点的距离,该数组大小为< 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)等等。非常感谢您的帮助
答案 0 :(得分:3)
您可以使用Matlab's builtin pdist2
function:
d = pdist2(A,B);
答案 1 :(得分:1)
我认为马歇尔在这个问题上的答案(
Efficiently compute pairwise squared Euclidean distance in Matlab)回答你的问题。它甚至比pdist2
更快,当您必须在多个阵列上进行此计算时,这可能很有用。