【问题标题】:Outputing data to .txt file in matlab has error在matlab中将数据输出到.txt文件有错误
【发布时间】: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


【解决方案1】:

将 fprint 更改为 fprintf。如果是这样,一切都应该没问题

【讨论】:

  • 想获得自学者徽章?
  • @brodroll 怎么办?我是新人。
  • 只需写:“正如@tmpeace 建议的那样,......”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-07
  • 2010-12-27
  • 1970-01-01
  • 1970-01-01
  • 2013-03-07
  • 1970-01-01
相关资源
最近更新 更多