矢量和点之间的距离

Distance between vector and a point

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

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

我看过 pdist() 函数,但找不到在我的代码中使用它的好方法。有更优雅的方法吗?

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