matlab读取nema0183语句中经纬度并转化成米单位的程序
时间: 2023-06-09 22:03:17 浏览: 159
NEMA0183语句关键信息读取
以下是将NMEA0183语句中的经纬度转换为以米为单位的MATLAB程序:
```matlab
% 输入NMEA0183语句中的经度和纬度字符串
lat = 'xxx.xxxxx'; % 纬度字符串
lon = 'xxx.xxxxx'; % 经度字符串
% 分离度分秒数
lat_deg = str2double(lat(1:2));
lat_min = str2double(lat(3:8));
lon_deg = str2double(lon(1:3));
lon_min = str2double(lon(4:9));
% 将度分秒数转换为度
lat_decimal = lat_deg + (lat_min / 60);
lon_decimal = lon_deg + (lon_min / 60);
% 根据纬度计算每度对应的距离
lat_m_per_deg = 111132.92 - 559.82*cosd(2*lat_deg) + 1.175*cosd(4*lat_deg) - 0.0023*cosd(6*lat_deg);
lon_m_per_deg = 111412.84*cosd(lat_deg) - 93.5*cosd(3*lat_deg) + 0.118*cosd(5*lat_deg);
% 计算以米为单位的经纬度
lat_m = lat_decimal * lat_m_per_deg;
lon_m = lon_decimal * lon_m_per_deg;
% 显示以米为单位的经纬度
disp(['纬度(米):' num2str(lat_m)]);
disp(['经度(米):' num2str(lon_m)]);
```
需要注意的是,该程序只适用于赤道附近的地区。对于其他地区,需要根据实际情况进行微调。
阅读全文