Matlab如何不以 科学计数法 将数据写入txt文档

问题

%数据存储在chabu_all变量中,导出至fiveaxis.txt文件中 fid = fopen('fiveaxis.txt','at+'); str=['G01 G90 ','X',num2str(chabu_all(1,1)),' Y',num2str(chabu_all(1,2)),' Z',num2str(chabu_all(1,3)),' A',num2str(rad2deg(chabu_all(1,4))),' C',num2str(rad2deg(chabu_all(1,5))),' F',num2str(vc(1)*60)]; fprintf(fid,'%s \n',str);

上述代码输出后,在记事本打开fiveaxis.txt可能会产生如下效果:
G01 G90 X10 Y2e-4 Z0.01 A10.2 C1e-5 F600
这是因为matlab会在小于0.001时自动使用科学计数法,例如数据为0.0001时,matlab输出为1e-4

解决办法

大致思路是给输出数据设置一个精度限制,matlab就不会以科学计数法输出,
将num2str函数替换为char(vpa())即可。

%数据存储在chabu_all变量中,导出至fiveaxis.txt文件中 fid = fopen('fiveaxis.txt','at+'); str=['G01 G90 ','X',char(vpa(chabu_all(1,1)),8),' Y',char(vpa(chabu_all(1,2)),8),' Z',char(vpa(chabu_all(1,3)),8),' A',char(vpa(rad2deg(chabu_all(1,4))),8),' C',char(vpa(rad2deg(chabu_all(1,5))),8),' F',char(vpa(vc(1)*60),8)]; fprintf(fid,'%s \n',str);

这样做的好处是可以将想添加的字符串一起输出到txt文件,dlmwrite函数则稍显麻烦
Solved


__EOF__

本文作者loading666
本文链接https://www.cnblogs.com/yxl-notebook/p/16011659.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   loading666  阅读(2325)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示