matlab中haversine
时间: 2023-07-30 13:11:29 浏览: 124
在Matlab中,可以使用Haversine公式来计算两个经纬度之间的距离。以下是一个示例代码:
```matlab
function \[d1km, d2km\] = distance(latlon1, latlon2)
radius = 6371; % 地球半径,单位为km
lat1 = latlon1(1) * pi / 180;
lat2 = latlon2(1) * pi / 180;
lon1 = latlon1(2) * pi / 180;
lon2 = latlon2(2) * pi / 180;
deltaLat = lat2 - lat1;
deltaLon = lon2 - lon1;
a = sin(deltaLat/2)^2 + cos(lat1) * cos(lat2) * sin(deltaLon/2)^2;
c = 2 * atan2(sqrt(a), sqrt(1-a));
d1km = radius * c; % 基于Haversine公式的距离,单位为km
x = deltaLon * cos((lat1 + lat2)/2);
y = deltaLat;
d2km = radius * sqrt(x^2 + y^2); % 基于Pythagoran公式的距离,单位为km
end
```
你可以将两个经纬度作为输入参数传递给`distance`函数,然后函数将返回基于Haversine公式和Pythagoran公式计算的距离,单位为km。
#### 引用[.reference_title]
- *1* [Matlab计算两点(经纬度坐标)距离(大弧法和Haversine法)](https://blog.csdn.net/L_J_Kin/article/details/122247893)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [【MATLAB第40期】源码分享 | MATLAB实现根据经纬度坐标查找两点之间的距离(Haversine、 Pythagoran定理)](https://blog.csdn.net/qq_29736627/article/details/131015643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]