Wie Sie Daten in eine Textdatei in einem bestimmten Format speichern?
-
06-09-2019 - |
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.
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)