Matlab中的前导零';科学符号

Matlab中的前导零';科学符号,matlab,file-io,scientific-notation,Matlab,File Io,Scientific Notation,在Matlab中,当使用e打印时,例如fprintf(“%10.5e\n',pi/100)将得到3.14159e-02。但是,如果我希望数字有一个前导零,例如0.314159e-1,该怎么办?我如何使用Matlab来管理它 我问的原因是,我试图打印到一个文件,我需要有前导零。否则,我就不在乎了 谢谢。我的解决方案很粗糙,但这只是为了说明。您可以自己使用一个小函数来执行此操作,该函数将查找数字中的相关字符串,在e之后对其进行修剪,在开头添加0.,并在结尾增加1指数,例如: function b=f

在Matlab中,当使用
e
打印时,例如
fprintf(“%10.5e\n',pi/100)
将得到
3.14159e-02
。但是,如果我希望数字有一个前导零,例如
0.314159e-1
,该怎么办?我如何使用Matlab来管理它

我问的原因是,我试图打印到一个文件,我需要有前导零。否则,我就不在乎了


谢谢。

我的解决方案很粗糙,但这只是为了说明。您可以自己使用一个小函数来执行此操作,该函数将查找数字中的相关字符串,在
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

我不认为有任何聪明的方法可以做到这一点:

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

>> ans =

0.314159e+01