【发布时间】:2015-05-13 11:03:31
【问题描述】:
c:\answer2.txt 文件数据看起来像 3957.7913 11618.2937 72.56 3957.7913 11618.2937 72.56 ......(GPGGA 格式:纬度、经度和高度)。
我想把数据转成十进制:39.963188 116.304895 72.56 ......
代码在第 19 行有错误:Error in ==> earth at 19
fprint(fp,'%f %f %f ',X2(i),Y2(i),Z2 (i)); (提示:earth 是 matlab 脚本名称)
如何修改代码以避免出现此错误?
已处理的文件有经纬度和高度坐标,这些坐标是GPGGA(一种NMEA)格式。 Matlab 将以十进制显示这些坐标,而不是度、分。
fid = fopen('c:\answer2.txt');
[A, count] = fscanf(fid,'%f ',inf);
fid1=['earth','.txt'];
fp=fopen(fid1,'wt');
B=reshape(A,3,count/3);
X=B(1,:);%ddmm.mmmm latitude coordinate
Y=B(2,:);% longitude coordinate
Z=B(3,:);% height coordinate
X2=(X-3900)/60+39;
Y2=(Y-11600)/60+116;
Z2=Z;
for i=1:count/3
fprint(fp,'%f %f %f ',X2(i),Y2(i),Z2(i));
end
fclose(fp);
fclose(fid);
【问题讨论】:
-
错误信息到底是什么?
-
fprint(fp,'%f %f %f ',X2(i),Y2(i),Z2(i))
-
我指的是您在控制台中读取的实际消息,而不是有问题的代码行
-
我想你可能希望fprintf 打印一个格式化的字符串,而不是
fprint -
只需在
fprint之后输入一个额外的f,它就会变成fprintf...
标签: matlab