利用经纬度计算多个距离matlab
时间: 2023-07-13 17:12:10 浏览: 276
如果要计算多个经纬度之间的距离,可以使用 MATLAB 的矩阵运算来处理。例如,假设有 3 个点 A、B、C,它们的经纬度分别为:
A: 纬度 39.9075 度,经度 116.3972 度
B: 纬度 31.2304 度,经度 121.4737 度
C: 纬度 30.2741 度,经度 120.1551 度
则可以使用以下代码计算它们之间的距离:
```matlab
lat = [39.9075; 31.2304; 30.2741]; % 点的纬度(单位:度)
lon = [116.3972; 121.4737; 120.1551]; % 点的经度(单位:度)
R = 6371; % 地球半径(单位:千米)
n = size(lat, 1); % 点的个数
distance = zeros(n, n); % 初始化距离矩阵
for i = 1:n
for j = i+1:n
delta_lat = deg2rad(lat(j) - lat(i)); % 纬度差(单位:弧度)
delta_lon = deg2rad(lon(j) - lon(i)); % 经度差(单位:弧度)
a = sin(delta_lat/2)^2 + cos(deg2rad(lat(i))) * cos(deg2rad(lat(j))) * sin(delta_lon/2)^2;
c = 2 * atan2(sqrt(a), sqrt(1-a));
distance(i, j) = R * c; % 计算距离(单位:千米)
distance(j, i) = distance(i, j); % 距离矩阵是对称矩阵,需要赋值两次
end
end
```
最终得到的 `distance` 就是这三个点之间的距离矩阵。其中 `distance(i,j)` 表示点 i 和点 j 之间的距离(单位:千米)。需要注意的是,距离矩阵是对称矩阵,因此需要在计算时对称处理。
阅读全文
相关推荐















