4

変数値を MATLAB に格納し、変数値の 1 つをファイル名の一部として入れています。たとえば"Error=1e-003.mat"、コマンドを使用して数値を文字列に変換しているときに、MATLAB のバージョンが異なると、異なる形式が返されますnum2str。数1e-3、MATLAB2011 が私1e-003に与え、MATLAB2012 が私に与えます1e-03

これら 2 つの形式が混在するファイルのバッチを読み込もうとすると、問題が発生します。名前が一貫しているように、指数にゼロを追加またはゼロを削除する方法を知っている人はいますか? または、この問題を解決する他の方法はありますか?

4

2 に答える 2

1

これを行うためのかなり堅牢な方法を次に示します。

A = num2str(YOUR_NUMBER, '%0.0e');

if A(end-2)=='-' || A(end-2)=='+'
    A = [A(1:end-2) '0' A(end-1:end)]; end

つまり、数値を変換し、最後から 2 番目の文字が a'+'または aかどうかを確認し'-'ます。その場合は、 を追加し'0'ます。

于 2012-10-04T04:38:39.797 に答える
-1

次のように、2番目の引数として「フォーマット文字列」を指定します。

>> disp(num2str(2920230,'%0.10e'))
2.9202300000e+006

ここ%0.10eで、小数点の前に少なくとも0桁、その後に指数形式で正確に10桁を表示することを意味します。

于 2012-10-04T01:45:16.657 に答える