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

如题所述

直接用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函数绘制曲线,所以运行后出现如下红色箭头所指的二次曲线:

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-01-03

直接用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

已知三十个地区的经纬度,用matlab怎么编程求出这三十个地区两两之间的...
直接用MATLAB地图工具箱(Mapping Toolbox)的distance函数就可以了,例如(为方便举例,这里只设置了4个点,30个点同样处理):已知各点的经纬度(依次为京沪津渝四地)pts = [ ... 116.46 39.92; 121.48 31.22; 117.20 39.13; 106.54 29.59 ];% 形成两两之间对应的矩...

matlab已知30个点经纬度要求距离小于n的点连线,并求距离,求算法...
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);%满足要求的点对个数 连起来 ...

利用matlab求经纬度求距离怎么编程
利用MATLAB地图工具箱(Mapping Toolbox)的distance函数,轻松计算经纬度间距离。以北京、上海、天津、重庆四地为例:定义各点经纬度:pts = [京的纬度,京的经度;沪的纬度,沪的经度;津的纬度,津的经度;渝的纬度,渝的经度];构建对应矩阵:[LA1,LA2]=meshgrid(pts(:,2));[LO1,LO2]=meshg...

【MATLAB】经纬度换算距离
计算向量夹角与距离:距离 = 地球半径 × arccos(向量点积) \/ π 通过此方法,我们可从数学角度理解经纬度与距离的换算关系。实践部分,我们使用MATLAB进行验证,结果与Google Map对比,验证方法的准确性和有效性。对于范围较大的北京至上海距离计算,虽有0.25公里误差,但通过分析,这主要源于坐标选取的...

怎样用matlab计算经纬度距离
1、计算经纬度之间的距离方法如下:计算地球上经纬度之间的距离d,已知地球上两点的经度、纬度:(X1,Y1), (X2,Y2),其中X1,X2为经度,Y1,Y2为纬度;视计算程序需要转化为弧度(*3.1415926\/180)地球半径为R=6371.0 km,则两点距离d=R*arcos[cos(Y1)*cos(Y2)*cos(X1-X2)+sin(Y1)*...

我现在有几百个点的经纬度坐标,如何用matlab将其两两之间的距离得出来...
matlab中有个distance函数。用法是 dist = distance(lat1,lon1,lat2,lon2);输入参数:lat1,lon1为一个点的纬度和经度,单位为度 lat2,lon2为另一个点的纬度和经度,单位为度 输出参数:dist为这两点的弧长,单位为度 所以,要得到两点的弧长距离,可以根据弧长公式算出 ...

如何用MATLAB实现经纬度间距离的计算?
EXCEL根据两点经纬度计算距离步骤:1、在Excel表格的A1-E1单元格中依次输入下列信息。A地经度、A地纬度和B地经度、B地纬度.千万不要弄错顺序 2、如图所示选中 A1-E2所有的单元格,对其进行框线的添加。3、单击E2单元格并输入下列公式:=6371004*ACOS(1-(POWER((SIN((90-B2)*PI()\/180)*COS(A2...

【Matlab】根据经纬度计算两点间的球面距离
方法一:Great-Circle距离,也称球面余弦公式,其计算公式基于地球半径和经纬度差异。首先,我们需要定义一个角度转弧度函数,然后创建一个函数来计算距离。尽管Matlab的语法在此处显得繁琐,但这是确保精度的关键。方法二:Haversine公式,它针对Great-Circle公式在短距离计算时的舍入误差进行了优化。即使在现代...

matlab中有没有直接计算地球上两点之间弧度距离的命令,已知两点经纬...
有,distance函数dist = distance(lat1,lon1,lat2,lon2);例如:从43°N,126°E到25°N109°E的距离是:distance(43,126,25,109)\/180*pi*6370 结果是:2.531050158587113e+003(km)

如何用MATLAB实现已知经纬度和高度求其速度的公式
正如图2指出的,19世纪后期以后大多数全球温度增暖主要出现在二个不同阶段:1910-1945年和1976年之后,两段时间温度升高的速率大约为0.15°C\/十年。图2:相对1961-1990年综和的1861-2000年年地表和海表温度距平(°C),在年数值上刻度指示有两个标准方差的不确定。[根据图2.7c]图3:1901-2000,...

相似回答