在Matlab中,使用e
(例如fprintf('%10.5e\n', pi/100)
)進行打印時,將得到結果爲3.14159e-02
。但是,如果我希望數字具有前導零,例如0.314159e-1
?我怎樣才能用Matlab來管理這個?在Matlab的科學計數法中導致零點
我要問的原因是我試圖打印到一個文件,我需要有前導零。否則,我不會在乎。
謝謝。
在Matlab中,使用e
(例如fprintf('%10.5e\n', pi/100)
)進行打印時,將得到結果爲3.14159e-02
。但是,如果我希望數字具有前導零,例如0.314159e-1
?我怎樣才能用Matlab來管理這個?在Matlab的科學計數法中導致零點
我要問的原因是我試圖打印到一個文件,我需要有前導零。否則,我不會在乎。
謝謝。
我不認爲有任何聰明的方法做到這一點:
your_number = pi;
['0.' strrep(sprintf('%10.5e',your_number*10), '.', '')]
>> ans =
0.314159e+01
我的解決方案很粗糙,但這只是爲了說明。您可以e
後自己與一個小功能,將尋找在數量相關的字符串做,修剪它,通過1
末添加在開始的時候和適當增加0.
指數,例如:
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