测量点与原点 (0,0) 的距离 - Matlab
Measure the distance of points from the origin(0,0) - Matlab
我想测量点到原点 (0,0) 的距离。基于这个问题 Wrong setting of pdist input data - Matlab 我使用了一个循环,但我想知道还有另一种方法吗?
脚本:
clc;
clear all;
x1 = [1:11];
y1 = [1;1;11;16;19;3;14;5;16;10;22];
x2 = [0];
y2 = [0];
for i = 1:length(x1)
dX = [x1(i),y1(i); x2, y2]
distResult = pdist(dX,'euclidean')
end
如果你只是在寻找像`(0, 0) 这样的固定点的欧氏距离,你可以在没有任何显式循环的情况下进行,如下所示:
x1 = [1:11].';
y1 = [1;1;11;16;19;3;14;5;16;10;22];
distResults = sqrt(x1.^2 + y1.^2);
此外,如果您想找到与原点以外的固定点(例如(x0, y0)
)的距离,您可以执行以下操作:
distResults = sqrt((x1 - x0).^2 + (y1 - y0).^2)
如果您担心不同的指标,您可以使用 pdist2
(如评论中所述),如下所示:
x1 = [1:11].';
y1 = [1;1;11;16;19;3;14;5;16;10;22];
distResults = pdist2([x1 y1], [0,0], 'euclidean');
我想测量点到原点 (0,0) 的距离。基于这个问题 Wrong setting of pdist input data - Matlab 我使用了一个循环,但我想知道还有另一种方法吗?
脚本:
clc;
clear all;
x1 = [1:11];
y1 = [1;1;11;16;19;3;14;5;16;10;22];
x2 = [0];
y2 = [0];
for i = 1:length(x1)
dX = [x1(i),y1(i); x2, y2]
distResult = pdist(dX,'euclidean')
end
如果你只是在寻找像`(0, 0) 这样的固定点的欧氏距离,你可以在没有任何显式循环的情况下进行,如下所示:
x1 = [1:11].';
y1 = [1;1;11;16;19;3;14;5;16;10;22];
distResults = sqrt(x1.^2 + y1.^2);
此外,如果您想找到与原点以外的固定点(例如(x0, y0)
)的距离,您可以执行以下操作:
distResults = sqrt((x1 - x0).^2 + (y1 - y0).^2)
如果您担心不同的指标,您可以使用 pdist2
(如评论中所述),如下所示:
x1 = [1:11].';
y1 = [1;1;11;16;19;3;14;5;16;10;22];
distResults = pdist2([x1 y1], [0,0], 'euclidean');