在Matlab的科学记数法中领先于零
在Matlab中,使用打印时e
如fprintf('%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