在Matlab科学记数法中领先零

时间:2013-05-08 23:20:23

标签: matlab file-io scientific-notation

在Matlab中,使用e fprintf('%10.5e\n', pi/100)进行打印时,结果为3.14159e-02。但是,如果我希望数字具有前导零,例如0.314159e-1,该怎么办?如何使用Matlab进行管理?

我问的原因是我正在尝试打印到我需要有前导零的文件。否则,我不在乎。

感谢。

2 个答案:

答案 0 :(得分:3)

我认为没有任何聪明的方法可以做到:

your_number = pi;
['0.' strrep(sprintf('%10.5e',your_number*10), '.', '')]

>> ans =

0.314159e+01

答案 1 :(得分:1)

我的解决方案很粗糙,但这只是为了说明。您可以使用一个小函数自行完成,该函数将查找数字中的相关字符串,在e之后修剪它,在开头添加0.并在1处增加function b=fooo(a) b=a; k1 = strfind(a, '.'); k2 = strfind(a, 'e-'); suffix=num2str(str2num(b(k2+1:k2+3))+1); b(k2+1:end)=[]; b(k1)=[]; b=['0.' b suffix]; 结束,例如:

ans=fooo(sprintf('%10.5e\n', pi/100))

输入如

ans =
   0.314159e-1

将得出答案:

{{1}}