【问题标题】:Distance between vector and a point矢量与点之间的距离
【发布时间】:2017-02-16 12:08:40
【问题描述】:

我有一个点point=[x y] 和一个向量vec=[X Y],其中XY 是包含许多点的x、y 值的向量。我使用以下代码计算了vec 中所有点与point 的欧式距离:

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

我见过pdist() 函数,但找不到在我的代码中使用它的好方法。有没有更优雅的方式来做到这一点?

【问题讨论】:

    标签: matlab euclidean-distance


    【解决方案1】:

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

    【讨论】: