3

マトリックスをテキストファイルに保存して、別のプログラムで読み取れるようにしたい。今私は使用します:

save('output.txt', 'A','-ascii');

しかし、これは私のファイルを次のように保存します

6.7206983e+000  2.5896414e-001
6.5710723e+000  4.9800797e-00
6.3466334e+000  6.9721116e-001
5.9975062e+000  1.3346614e+000
6.0224439e+000  1.8127490e+000
6.3466334e+000  2.0517928e+000
6.3965087e+000  1.9721116e+000

ただし、すべての数字ではなく、「e-notation」なしで保存してもらいたいと思います。これを行う簡単な方法はありますか?

編集:ありがとう!それはうまくいきます。申し訳ありませんが、ロールバックを使用して編集を台無しにしたと思います。

4

2 に答える 2

10

この関数を使用するfprintfと、データを出力する形式を自分で定義できます。次に例を示します。

fid = fopen('output.txt', 'wt');
fprintf(fid,'%0.6f %0.6f\n', A.');
fclose(fid);

これにより、小数点以下6桁の精度で行列Aが出力されます。fopen関数とを使用する必要があることに注意してくださいfclose

于 2009-05-29T16:00:29.710 に答える
3

パフォーマンスとカスタムフォーマットが必要な場合は、同上gnoviceのソリューション。

dlmwrite書式設定を(フィールドごとではなくグローバルに)制御できます。ただし、パフォーマンスが低下します。私は数年前にテストを実行しましたが、dlmwriteはfopen / fprintf / fcloseソリューションよりも5〜10倍遅いものでした。(編集:15x10000マトリックスのような大きなマトリックスを参照しています)

于 2009-05-29T16:42:42.877 に答える