Matlab中两点之间的距离

Bek*_*hin 4 matlab vector distance

我有2个向量,一个是200*2维度,另一个是3*2.它们都是笛卡尔坐标系中的点.我想计算前200个和其他3个点之间的距离,并将它们存储在矢量中.我正在使用这样的功能;

for i=1:cur
    for j=1:200
        L(j,i)=sqrt(square(P2(i,1)-C(j,1))+square(P2(i,2)-C(j,2)))
    end
end
Run Code Online (Sandbox Code Playgroud)

cur为3,P2为3*2向量,C为200*2.现在我得到的结果完全错误,但我无法弄清楚问题.任何帮助都会很好,如果有另一种方法来计算它我会很感激.通过更多信息的方式;

P2 = [2 -2;3 -5 ; -1 3];
Run Code Online (Sandbox Code Playgroud)

另一个是

theta = linspace(0,2*pi,200)';   %'
unitCircle = [cos(theta) sin(theta)];
C = zeros(numel(theta),2,num);
Run Code Online (Sandbox Code Playgroud)

pet*_*hor 7

square 不是用于平方值,而是返回方波的值.

您可以使用pdist2如下计算两组观测值之间的成对距离:

X = randn(200, 2);
Y = randn(3, 2);
D = pdist2(X,Y,'euclidean'); % euclidean distance
Run Code Online (Sandbox Code Playgroud)

  • 不要使用`pow2`.`pow2(x)`返回2为幂x,而不是x为2的幂.为了得到x平方,使用`x.^ 2`. (2认同)