回 帖 发 新 帖 刷新版面

主题:怎么求距离啊?

有一组数据x=[],y=[],和已知一个点坐标(x,y),现在要求这一组x=[],y=[]与已知点间的距离.要怎么编这个程序啊?

回复列表 (共10个回复)

沙发

不只是什么距离阿

板凳

楼主的意思是不是求这组数据和(x,y)的最小距离啊?
比如x=[x1,x2,...,xn],y=[y1,y2,...,yn],距离d=inf(d((xi,yi),(x,y)))
我试了一个例子:
x=[1,2,3,4,5];
y=[5,4,3,2,1];
x0=1;
y0=1;
dd=[0,0,0,0,0];
for i=1:5
    dd(1,i)=dd(1,i)+sqrt((x(1,i)-x0)^2+(y(1,i)-y0)^2);
end
ddd=min(dd);
disp(ddd);

运行结果:
    2.8284

3 楼


意思就是求这组数据和(x,y)的分别的距离
2楼的能不能解释下程序啊?有的地方看不懂,例如
x0=1;
y0=1;
dd=[0,0,0,0,0];
for i=1:5
    dd(1,i)=dd(1,i)+sqrt((x(1,i)-x0)^2+(y(1,i)-y0)^2);
end

4 楼


什么叫分别的距离阿,没说清楚。

5 楼

点坐标(x,y)用1*2的数组A[ , ](向量)表示
A[],B[]两点的距离:norm(B-A,2)(向量之二范数)

6 楼

这样行吗?
function d=L(x,y)
x0=1;
y0=1;
% (x,y)为数组,是未知的,(x0,y0)为定点,是已知的。
d=sqrt((x0-x).^2+(y0-y).^2);
%这d就是距离。

7 楼

[quote]
意思就是求这组数据和(x,y)的分别的距离
2楼的能不能解释下程序啊?有的地方看不懂,例如
x0=1;
y0=1;
dd=[0,0,0,0,0];
for i=1:5
    dd(1,i)=dd(1,i)+sqrt((x(1,i)-x0)^2+(y(1,i)-y0)^2);
end
[/quote]
x0和y0是(x,y)的值,我这里随便设定了一个,就取1
dd是这两个个数组(例子中是两个1*5的矩阵,x是数组中点的x坐标矩阵,y是y坐标矩阵)中每个点到(x,y)的距离,如果分别求距离的话,得到的距离也是一个数组,就把dd的终值表示出来就是了

for循环里就是把数组里每个点和(x0,y0)的距离算出来

8 楼

%假设x,y与已知点(x0,y0)如下
x=[1 2 3 4 5];
y=[5 4 3 2 1];
x0=1;
y0=2;

X0=linspace(x0,x0,length(x));
Y0=linspace(y0,y0,length(y));

Distance=((x-X0).^2+(y-Y0).^2).^0.5

9 楼

分别的距离就是说有x=[x1,x2,x3,x4] y=[y1,y2,y3,y4]要求他们与(a,b)的距离,得到的是(x1,y1)与(a,b)的距离
   (x2,y2)与(a,b)的距离
   (x3,y3)与(a,b)的距离
    (x4,y4)与(a,b)的距离

10 楼

假定a,b分别为a=[1 2 3 4;2 3 4 5; 3 4 5 6 ];
b = [1;1;1];

%%  求点集a与一个定点b间的距离
clear;
a=[1 2 3 4;2 3 4 5; 3 4 5 6 ];
b = [1;1;1];
b=repmat(b,1,4);              % 生成一个4列的b元素
c =sum((a-b).^2);
range = sqrt(c);

我来回复

您尚未登录,请登录后再回复。点此登录或注册