matlab读取文本文件中nema0183语句并完成度分格式转化与绘图并保存数据的完整程序
时间: 2023-06-03 21:07:02 浏览: 199
对于您的问题,我可以提供一些参考信息:
1. Matlab可以使用textscan函数读取文本文件中的nema0183语句,例如:
fid = fopen('nema.txt','r');
C = textscan(fid,'%s','delimiter','\n');
fclose(fid);
其中,nema.txt是文本文件名,'%s'表示每行读取为字符串,'delimiter','\n'表示以换行符为分隔符。
2. 将度分格式转换为数值格式,可以使用str2double函数进行转换,例如:
deg = '120';
min = '30.5';
coord = str2double(deg) + str2double(min)/60;
3. 绘图可以使用plot函数进行,例如:
lon = [120.0,120.2,120.4,120.6,120.8];
lat = [30.0,30.2,30.4,30.6,30.8];
plot(lon,lat,'-o');
其中,'-o'表示用实心圆点连接每个点。
4. 保存数据可以使用save函数进行,例如:
data = [lon;lat];
save('data.mat','data');
其中,data.mat是数据文件名,data是需要保存的变量名。
综合以上信息,可以编写如下完整程序:
fid = fopen('nema.txt','r');
C = textscan(fid,'%s','delimiter','\n');
fclose(fid);
lon_deg = {'120.0','120.2','120.4','120.6','120.8'};
lat_deg = {'30.0','30.2','30.4','30.6','30.8'};
lon = zeros(size(lon_deg));
lat = zeros(size(lat_deg));
for i=1:length(lon_deg)
lon(i) = str2double(lon_deg{i}) + str2double(lat_deg{i})/60;
end
lat_deg = {'30.0','30.2','30.4','30.6','30.8'};
for i=1:length(lat_deg)
lat(i) = str2double(lat_deg{i}) + str2double(lon_deg{i})/60;
end
plot(lon,lat,'-o');
save('data.mat','lon','lat');
阅读全文