2013-05-08 13 views
7

Matlabでは、efprintf('%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で指数を始めとincreseで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 
関連する問題