e
在 Matlab 中,当使用诸如one进行打印时fprintf('%10.5e\n', pi/100)
,结果为3.14159e-02
. 但是,如果我希望数字有前导零,例如0.314159e-1
?如何使用 Matlab 进行管理?
我问的原因是我正在尝试打印到需要前导零的文件。否则,我不会在意。
谢谢。
e
在 Matlab 中,当使用诸如one进行打印时fprintf('%10.5e\n', pi/100)
,结果为3.14159e-02
. 但是,如果我希望数字有前导零,例如0.314159e-1
?如何使用 Matlab 进行管理?
我问的原因是我正在尝试打印到需要前导零的文件。否则,我不会在意。
谢谢。
我认为没有任何聪明的方法可以做到这一点:
your_number = pi;
['0.' strrep(sprintf('%10.5e',your_number*10), '.', '')]
>> ans =
0.314159e+01
我的解决方案非常粗糙,但这只是为了说明。您可以自己使用一个小函数来查找数字中的相关字符串,在 之后对其进行修剪,在开头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