matlab通过经纬度计算距离的代码
时间: 2023-09-27 09:04:00 浏览: 178
以下是Matlab中通过经纬度计算距离的示例代码:
```matlab
% 定义地球平均半径(单位:米)
R = 6371e3;
% 给定两个点的经纬度坐标(单位:度)
lat1 = 39.9;
lon1 = 116.4;
lat2 = 31.2;
lon2 = 121.5;
% 将经纬度转化为弧度
lat1 = deg2rad(lat1);
lon1 = deg2rad(lon1);
lat2 = deg2rad(lat2);
lon2 = deg2rad(lon2);
% 计算两点之间的距离(单位:米)
distance = R * acos(sin(lat1)*sin(lat2) + cos(lat1)*cos(lat2)*cos(lon2-lon1));
```
在此示例中,我们定义了地球的平均半径为`R = 6371e3`(单位:米)。接着,我们给定了两个点的经纬度坐标,并将它们转化为弧度(`deg2rad`函数将角度转化为弧度)。最后,我们使用Haversine公式计算了两点之间的距离(单位:米)。
相关问题
matlab经纬度计算距离
Matlab可以通过Haversine公式来计算两个地理位置之间的距离,该公式使用经纬度来计算两点之间的直线距离。以下是使用Haversine公式计算两个地理位置之间距离的示例代码:
```
function [distance] = haversine(lat1,lon1,lat2,lon2)
% 将经纬度转换为弧度
lat1 = lat1*pi/180;
lon1 = lon1*pi/180;
lat2 = lat2*pi/180;
lon2 = lon2*pi/180;
% Haversine公式计算两个点之间的距离
dlon = lon2-lon1;
dlat = lat2-lat1;
a = sin(dlat/2)^2 + cos(lat1)*cos(lat2)*sin(dlon/2)^2;
c = 2*atan2(sqrt(a),sqrt(1-a));
R = 6371; % 地球半径,单位为千米
distance = R*c; % 单位为千米
end
```
在上面的代码中,输入参数分别为起点和终点的经纬度,单位为度。输出结果为两点之间的距离,单位为千米。
matlab 求解经纬度平均距离的代码
以下是一种计算给定经纬度点集平均距离的MATLAB代码:
```matlab
% 经纬度点集,每一行代表一个点,第一列为经度,第二列为纬度
points = [116.3975, 39.9085;
121.4737, 31.2304;
113.2644, 23.1291;
120.1536, 30.2875;
114.3054, 30.5928;
117.2008, 39.084;
123.4315, 41.8057;
106.6306, 26.6474;
117.5546, 36.6466;
116.4074, 39.9042];
% 将经纬度转换为弧度
points_rad = deg2rad(points);
% 计算每两个点之间的球面距离(单位:km)
distances = distance(points_rad(:,2), points_rad(:,1), ...
points_rad(:,2), points_rad(:,1), ...
referenceEllipsoid('WGS 84', 'km'));
% 计算平均距离
avg_distance = mean(distances(:));
disp(['平均距离:', num2str(avg_distance), ' km']);
```
这里使用了MATLAB自带的`distance`函数计算两个点之间的球面距离,参考椭球体为WGS84。最后求取所有点对之间距离的平均值即为所求的平均距离。
阅读全文
相关推荐
















