nmea0183数据中度分格式经纬度转为度格式的matlab程序
时间: 2024-04-29 09:25:45 浏览: 16
下面是一个将NMEA0183数据中的度分格式经纬度转换为度格式的Matlab程序:
```
function [lat_deg, lon_deg] = nmea0183_deg2dec(lat_degmin, lat_dir, lon_degmin, lon_dir)
% Convert NMEA0183 latitude and longitude from degree/minute format to decimal degrees
% Convert latitude from degree/minute format to decimal degrees
lat_deg = floor(lat_degmin / 100) + rem(lat_degmin, 100) / 60;
if lat_dir == 'S'
lat_deg = -lat_deg;
end
% Convert longitude from degree/minute format to decimal degrees
lon_deg = floor(lon_degmin / 100) + rem(lon_degmin, 100) / 60;
if lon_dir == 'W'
lon_deg = -lon_deg;
end
end
```
该程序的输入参数是四个,分别是纬度的度分格式表示(例如,南纬30度15.123分表示为3015.123),纬度方向(N或S),经度的度分格式表示(例如,西经120度30.456分表示为12030.456),以及经度方向(E或W)。输出参数是经纬度的度格式表示。
该程序首先将纬度和经度的度分格式转换为度格式。对于纬度,将度分格式的整数部分除以100取整得到度,将小数部分除以60得到分,将度和分相加得到度格式表示。如果纬度方向是南,则将度取负。对于经度,与纬度类似,但是如果经度方向是西,则将度取负。
示例:
```
>> [lat, lon] = nmea0183_deg2dec(3015.123, 'S', 12030.456, 'W')
lat =
-30.2521
lon =
-120.5076
```