已知三十个地区的经纬度,用matlab怎么编程三十个地区两两之间的距离?

 我来答
啦啦啦1112201
推荐于2019-08-28 · TA获得超过8.2万个赞
知道小有建树答主
回答量:42
采纳率:0%
帮助的人:1.3万
展开全部

直接用MATLAB地图工具箱(Mapping Toolbox)的distance函数就可以了,例如(为方便举例,这里只设置了4个点,30个点同样处理):

已知各点的经纬度(依次为京沪津渝四地)

pts = [ ...

116.46 39.92;

121.48 31.22;

117.20 39.13;

106.54 29.59


形成两两之间对应的矩阵(对称阵,可以只看上三角或下三角)

[LA1,LA2]=meshgrid(pts(:,2));

[LO1,LO2]=meshgrid(pts(:,1));

计算两两之间的距离,单位为公里

R = distance(LA1,LO1,LA2,LO2,almanac('earth','wgs84'));这里地球模型是采用的WGS84

考椭球,也可以改用其它参考椭球,具体可参考almanac函数。

得到的结果为

>> num2str(R,'%10.2f')

ans =

0.00   1066.68    108.36   1460.16

1066.68      0.00    959.95   1445.81

108.36    959.95      0.00   1440.61

1460.16   1445.81   1440.61      0.00

  • 如下图所示,打开软件后点击File/New/Script后,会出现文件编辑窗口:

  • 在文件编辑窗口输入代码,如下图所示:

  • 检查代码,确保没有错误后点击窗口中运行(Run)按钮,运行程序(如下图红色箭头所示按钮):

  • 查看运行结果,由于利用plot函数绘制曲线,所以运行后出现如下红色箭头所指的二次曲线:

帅的人生9
2018-01-03 · TA获得超过212个赞
知道答主
回答量:0
采纳率:100%
帮助的人:0
展开全部

直接用MATLAB地图工具箱(Mapping Toolbox)的distance函数就可以了,例如(为方便举例,这里只设置了4个点,30个点同样处理):

% 已知各点的经纬度(依次为京沪津渝四地)pts = [ ... 116.46 39.92; 121.48 31.22; 117.20 39.13; 106.54 29.59 ];% 形成两两之间对应的矩阵(对称阵,可以只看上三角或下三角)[LA1,LA2]=meshgrid(pts(:,2));[LO1,LO2]=meshgrid(pts(:,1));% 计算两两之间的距离,单位为公里R = distance(LA1,LO1,LA2,LO2,almanac('earth','wgs84'));这里地球模型是采用的WGS84参考椭球,也可以改用其它参考椭球,具体可参考almanac函数。

得到的结果为

>> num2str(R,'%10.2f')ans = 0.00 1066.68 108.36 1460.161066.68 0.00 959.95 1445.81 108.36 959.95 0.00 1440.611460.16 1445.81 1440.61 0.00

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式