在Matlab的科学记数法中领先于零

在Matlab中,使用打印时efprintf('%10.5en', 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.5en', pi/100))

将得出答案:

ans =
   0.314159e-1
链接地址: http://www.djcxy.com/p/71413.html

上一篇: Leading zero in Matlab's scientific notation

下一篇: Registry path to find ALL the installed applications