matlab已知30个点经纬度要求距离小于n的点连线,并求距离,求算法.
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/02 19:53:55
matlab已知30个点经纬度要求距离小于n的点连线,并求距离,求算法.
x=[108.95304
108.948646
108.943245
108.94338
108.953261
108.944739
108.952711
108.950219
108.94584
108.936101
108.966846
108.958679
108.954148
108.953211
108.954652
108.955135
108.943435
108.96003
108.952525
108.953716
108.954037
108.940287
108.944593
108.933135
108.962475
108.959052
108.956224
108.945436
108.953232
108.950231
];
y=[34.324856
34.323761
34.326451
34.333263
34.334844
34.33871
34.351631
34.347578
34.35333
34.362683
34.321815
34.320295
34.320764
34.319554
34.325214
34.32663
34.327857
34.333069
34.333088
34.3361
34.339862
34.339132
34.342854
34.346602
34.347604
34.347537
34.347805
34.362334
34.330315
34.353367
];
plot(x,y,'*');
for i=1:30 %为点的个数
text(x(i),y(i),sprintf('%d',i)) %x,y为坐标值
end
x=[108.95304
108.948646
108.943245
108.94338
108.953261
108.944739
108.952711
108.950219
108.94584
108.936101
108.966846
108.958679
108.954148
108.953211
108.954652
108.955135
108.943435
108.96003
108.952525
108.953716
108.954037
108.940287
108.944593
108.933135
108.962475
108.959052
108.956224
108.945436
108.953232
108.950231
];
y=[34.324856
34.323761
34.326451
34.333263
34.334844
34.33871
34.351631
34.347578
34.35333
34.362683
34.321815
34.320295
34.320764
34.319554
34.325214
34.32663
34.327857
34.333069
34.333088
34.3361
34.339862
34.339132
34.342854
34.346602
34.347604
34.347537
34.347805
34.362334
34.330315
34.353367
];
plot(x,y,'*');
for i=1:30 %为点的个数
text(x(i),y(i),sprintf('%d',i)) %x,y为坐标值
end
你这是求任意两点间距离,或叫欧氏距离求法.分一下几步:
1)形成距离求解矩阵N*2维
C=[x y]
2)、求任意点距离
for i=1:30
for j=1:30
D(i,j)=sqrt((C(i,1)-C(j,1))^2+(C(i,2)-C(j,2))^2);
end
end
3)因为每个点到自身的距离为0,故将每个点到自身的距离设为无限大:
for i=1:30
D(i,i)=inf;
end
4)求距离小于n的距离点标号
[Fx Fy]=find(D<n);
Fx和Fy存储的为距离小于n点标号,比如Fx(1)=4,Fy(1)=5,则45两点间距离小于n.
5)画连线
Fn=length(Fx);%满足要求的点对个数
%连起来
for i=1:Fn;
pI=Fx(i); %起点标号
pJ=Fy(i); %终点标号
line([x(pI,1) x(pJ,1)],[y(pI,1) y(pJ,1)])
D(Fx(i),Fy(i));
% xmid=(x(pI,1)+x(pJ,1))/2;
% ymid=(y(pI,1)+y(pJ,1))/2;
% str=num2str(D(Fx(i),Fy(i)));
% text(xmid,ymid,str)
end
1)形成距离求解矩阵N*2维
C=[x y]
2)、求任意点距离
for i=1:30
for j=1:30
D(i,j)=sqrt((C(i,1)-C(j,1))^2+(C(i,2)-C(j,2))^2);
end
end
3)因为每个点到自身的距离为0,故将每个点到自身的距离设为无限大:
for i=1:30
D(i,i)=inf;
end
4)求距离小于n的距离点标号
[Fx Fy]=find(D<n);
Fx和Fy存储的为距离小于n点标号,比如Fx(1)=4,Fy(1)=5,则45两点间距离小于n.
5)画连线
Fn=length(Fx);%满足要求的点对个数
%连起来
for i=1:Fn;
pI=Fx(i); %起点标号
pJ=Fy(i); %终点标号
line([x(pI,1) x(pJ,1)],[y(pI,1) y(pJ,1)])
D(Fx(i),Fy(i));
% xmid=(x(pI,1)+x(pJ,1))/2;
% ymid=(y(pI,1)+y(pJ,1))/2;
% str=num2str(D(Fx(i),Fy(i)));
% text(xmid,ymid,str)
end
matlab已知30个点经纬度要求距离小于n的点连线,并求距离,求算法.
已知两点经纬度和这两点到第三点距离,求第三点的经纬度?
在已知n个点三维坐标的情况下,求每两点之间的距离.用matlab.
已知A点的经纬度以及B点到A点的距离,求B点的经纬度.公式是什么啊?求给位大侠帮忙!
知道两个点的经纬度坐标如何求球面距离
我遇到和你一样的难题,就是已知A点的经纬度以及B点到A点的距离,求B点的经纬度.请赐教!
编程,平面上有n个点,求所有各点之间的最长距离.要求定义和调用函数计算距离
已知a,b,c三点的经纬度,怎么求出c与a,b两点连线的距离
已知经纬度,求地球两点的距离
看一篇英文论文,提到:已知n个点的坐标,求一个点,到个点距离之和最近,首先是已知三个点,求一个点到三个点的距离和最近,他
知道地球上ab两点的夹角及距离,如果又知道a点经纬度,如何求b点经纬度
已知A点的经纬度.现求以A点看来方位为DOA,距离为R处的B点的经纬度.如何计算?A点B点均在海平面上.