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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM