我正在使用 Matlab 中的 fprintf
命令将数据写入输出文本文件。如何将一个数字写入输出文件,例如 1.12345678e-001
,指数为三位?
formatSpec = '%1.8e\n';
给出 1.12345678e-01
,不是想要的结果!
但是按照那里给出的说明并没有解决问题!
最佳答案
您可以使用这种非正则表达式方法:
num = 0.112345678
pow = floor(log10(abs(num)));
sprintf('%.8fe%+.3d', num/10^pow, pow)
ans =
1.12345678e-001
对于多个输入使用这个:
num= [.123 .456 .789];
pow = floor(log10(abs(num)));
sprintf('%.8fe%+.3d ', [num./10.^pow; pow])
关于matlab - 在 Matlab 中,如何使用 formatSpec 格式化运算符指定指数中的位数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48401157/