Frage

Ich mag eine Matrix in eine Textdatei speichern, also kann ich es von einem anderen Programm lesen. Im Moment benutze ich:

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

Aber das spart meine Datei als

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

Aber ich möchte sie ohne die „e-Notation“ gespeichert haben und nicht mit allen Ziffern. Gibt es eine einfache Möglichkeit, dies zu tun?

Edit: Vielen Dank! Das funktioniert ganz gut. Sorry, aber ich denke, ich vermasselt deine Bearbeitung durch das Rollback verwendet wird.

War es hilfreich?

Lösung

Ich würde verwenden, um die fprintf Funktion, die es Ihnen ermöglichen, Sie selbst, was Format zur Ausgabe in den Daten zu definieren. zum Beispiel:

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

Dies wird Ausgang der Matrix A mit 6 Ziffern der Präzision nach dem Dezimalkomma. Beachten Sie, dass Sie müssen auch die Funktionen verwenden fopen und fclose .

Andere Tipps

Ditto gnovice-Lösung, wenn Sie benötigen Performance & benutzerdefinierte Formatierung.

dlmwrite gibt Ihnen eine gewisse Kontrolle (global , nicht pro-Feld-Basis) der Formatierung. Aber es leidet unter geringerer Leistung. Ich lief einen Test vor ein paar Jahren und dlmwrite war so etwas wie 5-10x langsamer als die fopen / fprintf / fclose Lösung. (Edit: Ich beziehe mich auf große Matrizen, wie eine 15x10000 Matrix)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top