2012-01-12 7 views
0
>> str = '0009.51998' 
>> str2num(str) 

またははMatlabの

>> sscanf(str,'%f') 

ans = 9.5200 

で特定の形式で、numに文字列を変換する私の代わりにこれを取得したい:

ans = 9.51998 
+0

すでに文字列がある場合、なぜnum2strを訴えていますか? (私はこれがあなたの質問を変えない/それに答えることを実現する) –

答えて

3

あなたはそれを取得しています。表示されている小数点以下4桁まで四捨五入されています。より多くの精度を確認するにはformat longを実行してください。

>> str = '0009.51998'; 
>> x = sscanf(str, '%f') 
x = 
    9.5200 
>> format long 
>> x 
x = 
    9.519980000000000 
>> 

またsscanfの代替としてstr2doubleを使用することができます。 str2numよりも安全で柔軟性があります。これはstr2numevalコマンドを使用しているためです。たとえば、次のように試してみてください。

str2num(' figure();imshow(''peppers.png'')') 

結果に驚くかもしれません。

+0

+ 1のピーマンの数字。 –