matlab读取文本文件中多条gpgga语句中经纬度并转化度分格式并保存的程序
时间: 2024-05-08 07:19:35 浏览: 165
code_通过串口读取gps数据_源码
5星 · 资源好评率100%
好的,这里是一个 Matlab 程序,可以读取文本文件中的多个 GPGGA 语句,提取经度和纬度信息,并将其转换为度分格式并保存。
```
filename = 'yourtextfile.txt'; % 修改为您要读取的文件名
fid = fopen(filename, 'r');
if fid == -1
error('无法打开文件 %s', filename);
end
data = textscan(fid, '%s', 'delimiter', '\n'); % 读取每行数据
fclose(fid);
% 提取每条 GPGGA 语句的经纬度信息
latitudes = [];
longitudes = [];
for i = 1:length(data{1})
line = data{1}{i};
if contains(line, 'GPGGA')
fields = strsplit(line, ',');
if length(fields) >= 10
latitude_str = fields{3};
longitude_str = fields{5};
if ~isempty(latitude_str) && ~isempty(longitude_str)
% 转换为度分格式
lat_degrees = floor(str2double(latitude_str(1:2)));
lat_minutes = str2double(latitude_str(3:end)) / 60;
latitude = lat_degrees + lat_minutes;
if fields{4} == 'S'
latitude = -latitude;
end
lon_degrees = floor(str2double(longitude_str(1:3)));
lon_minutes = str2double(longitude_str(4:end)) / 60;
longitude = lon_degrees + lon_minutes;
if fields{6} == 'W'
longitude = -longitude;
end
% 保存经纬度信息
latitudes(end+1) = latitude;
longitudes(end+1) = longitude;
end
end
end
end
% 保存到文本文件中
output_filename = 'output.txt'; % 修改为您想要保存的文件名
fOut = fopen(output_filename, 'w');
if fOut ~= -1
fprintf(fOut, '纬度\t经度\n');
for i = 1:length(latitudes)
fprintf(fOut, '%f\t%f\n', latitudes(i), longitudes(i));
end
fclose(fOut);
end
```
阅读全文