矢量和点之间的距离
Distance between vector and a point
我有一个点 point=[x y]
和一个向量 vec=[X Y]
,其中 X
和 Y
是包含许多点的 x、y 值的向量。我已经使用以下代码计算了 vec
与 point
中所有点的欧氏距离:
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)
。如果代码不是性能关键,我不会担心它,只使用更优雅、更容易理解的代码。
我有一个点 point=[x y]
和一个向量 vec=[X Y]
,其中 X
和 Y
是包含许多点的 x、y 值的向量。我已经使用以下代码计算了 vec
与 point
中所有点的欧氏距离:
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)
。如果代码不是性能关键,我不会担心它,只使用更优雅、更容易理解的代码。