在一对点列表之间计算dsitance的最快方法

时间:2016-04-29 09:17:44

标签: matlab optimization

我有n个点在k维空间中(n由k个矩阵的数据点)。另外,我有一对长度为d的点对列表(列表矩阵的维数为d乘以2)。

我的目标是在长度为d的向量中找到该列表中每对点之间的欧几里德距离。

在MATLAB中为长列表执行此操作的最快方法是什么?你认为使用C ++ / python可能会有很多加速吗?

1 个答案:

答案 0 :(得分:0)

A = [22 44];
B= [44 66];
tic
distAB = sqrt((A(1)-B(1))^2+(A(2)-B(2))^2)
toc
distAB =

   31.1127

Elapsed time is 0.004398 seconds.

嗯,MATLAB非常快。只需制作一个for循环并随着时间的推移更新您的积分。

您的代码应该是这样的:

for i=1:length(d)-1
distAB(i)=sqrt((d(1,i+1)-d(1,i))^2+(d(2,i+1)-d(2,i))^2)
end