2013-05-08 48 views
7

在Matlab中,使用e(例如fprintf('%10.5e\n', pi/100))進行打印時,將得到結果爲3.14159e-02。但是,如果我希望數字具有前導零,例如0.314159e-1?我怎樣才能用Matlab來管理這個?在Matlab的科學計數法中導致零點

我要問的原因是我試圖打印到一個文件,我需要有前導零。否則,我不會在乎。

謝謝。

回答

3

我不認爲有任何聰明的方法做到這一點:

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

>> ans = 

0.314159e+01 
1

我的解決方案很粗糙,但這只是爲了說明。您可以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