2017-02-16 104 views
1

我有一个点point=[x y]和一个向量vec=[X Y],其中XY是包含许多点的x,y值的向量。我算过所有点的欧氏距离在vecpoint用下面的代码:向量和点之间的距离

diff=vec-point; 
    squared=diff.*diff; 
    distances=sqrt(sum(squared,2)); 

我已经看到了pdist()功能,但无法找到我的代码中使用它的好办法。有没有更优雅的方式来做到这一点?

回答

1

您可以使用类似m = [point; vec]然后distances=pdist(m, 'euclidean'),但它会计算O((n+1)ˆ2)距离,而不是您需要的O(n)。如果代码不是性能关键的,我不会担心它,只是使用更优雅,更易于理解的代码。