我有一个点point=[x y]
和一个向量vec=[X Y]
,其中X
和Y
是包含许多点的x,y值的向量。我使用以下代码计算vec
point
中所有点的欧氏距离:
diff=vec-point;
squared=diff.*diff;
distances=sqrt(sum(squared,2));
我见过pdist()
函数,但找不到在我的代码中使用它的好方法。有更优雅的方式吗?
答案 0 :(得分:1)
您可以使用m = [point; vec]
和distances=pdist(m, 'euclidean')
之类的内容,但它会计算O((n+1)ˆ2)
距离,而不是您需要的O(n)
。如果代码不是性能关键,我不会担心它,只需使用更优雅,更容易理解的代码。