|
|
Export von Daten in ASCII-Format |
|
metronomy |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.06.2009, 22:02
Titel: Export von Daten in ASCII-Format
|
|
HAllo!
Ich als absolute Matlab-Anfängerin hab ein Problem: Ich möchte Daten von Matlab in ein ASCII-Format exportieren. Ich hab das folgendermaßen gemacht:
Dabei ist 'ERG' meine Variable die exportiert werden soll. Problem an der ganzen Sache ist jedoch, dass das Zahlenformat in der ASCII-Datei nicht kompatibel für meine Zwecke ist und so aussieht:
1.0000000e+000 0.0000000e+000 2.7012000e+001 1.1077800e+001
aber in folgender Form durch Tabs getrennt auftreten soll:
1 0.0 27.0120 11.0778!
Wie stelle ich das am besten an?Wie kann man das Zahlenformat ändern?
Für Hilfe wäre ich sehr dankbar.
edit by steve: Code-Umgebung ergänzt. Bitte selbstständig formatieren. Danke!
|
|
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.06.2009, 22:13
Titel:
|
|
Guck Dir mal dlmwrite an. Da kannst Du sowohl Zahlenformat, als auch Trennzeichen vorgeben.
|
|
|
metronomy |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.06.2009, 08:40
Titel:
|
|
Danke erstmal für den Tip. Die Funktion hatte ich auch schon ausprobiert.
Wie kann man bei dlmwrite die Zahlenformate vorgeben? Ist dies auch bei save möglich?(das save-Ergebnisformat (getrennt durch Tab) ist genau das welches ich benötige, nur eben mit einem "normalen" Zahlenformat)
dlmwrite verzerrt das Format der ascii-Datei und macht es so unbrauchbar für mein Modell.
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.029
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2024a
|
|
|
|
|
|
Verfasst am: 15.06.2009, 08:43
Titel:
|
|
Moin,
wenn du deine eigenen Anforderungen umsetzen willst, dann kann ich dir noch PRINTF empfehlen. Da kannst du alles angeben - Siehe Hilfe dazu.
Gruß
Alex
_________________
>> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.06.2009, 08:45
Titel:
|
|
Wie soll das Format denn sein?
Die Hilfe zu dlmwrite schreibt:
DLMWRITE('file.txt',M,'delimiter','\t','precision','%.6f')
M -> Deine Daten
'\t' ist ein Tabulator und trennzeichen
'%.6f' ist das Zahlenformat und der Formatierung von printf aus der schönen Sprache C nachempfunden (ist identisch).
%f = float
%.6f = float, es werden immer 6 Nachkommastellen ausgegeben
%04.6f = float, 6 Nachkommastellen und 4 Vorkommastellen, führende Nullen werden aufgefüllt
usw. Da gibt es im Netz tonnenweise Erklärungen dazu, die Matlabhilfe ist da nicht so sehr informativ dazu.
|
|
|
metronomy |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.06.2009, 09:38
Titel:
|
|
|
|
|
Hey!
danke für die schnelle Hilfe. Das Zahlenformat hab ich jetzt so wie ich möchte.
Problem an der ganzen Sache ist nun, dass das Ergebnis nicht in 4 Spalten und 366 Zeilen vorliegt, sondern nebeneinander in die .txt-File geschrieben wird.
So solls sein Beispiel:(Day of Year, Niederschlag,Temperaturmaximum, Temp.minimum)
1 .0 28.6 12.7
2 .0 32.4 15.1
3 .0 32.0 14.6
4 .0 27.4 13.1
5 .0 30.0 12.3
6 .0 29.0 13.4
7 .0 31.1 12.7
8 .0 32.8 13.2
9 .0 29.7 11.7
10 .0 29.5 10.3
...
...
und so wird es gerade ausgegeben mit dlmwrite:
1.000000 0.000000 27.012000 11.0778002.000000 0.000000 30.831200 13.5147003.000000 0.000000 30.392700 13.0029004.000000 130.126000 25.810100 11.4955005.000000 0.000000 28.358100 10.6840006.000000 0.000000 27.403000 11.7867007.000000 0.000000 29.504500 11.0974008.000000 0.000000 31.193600 11.6404009.000000 0.000000 28.147200 10.07350010.000000 6.587980 27.850300 8.692650
...
...
Hier wird die Ergebnisvariable hintereinander ausgegeben und nicht in 4 Spalten à 366 Zeilen.
wie kann man das noch in die geeignete Form bringen?
LG
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.06.2009, 10:06
Titel:
|
|
Das sollte mit dem zusätzlichen Parameter newline gehen.
Wobei 'pc' bedeutet, dass ein \r\n angehängt wird. Es gibt auch noch 'unix', wo dann nur ein \n angehängt wird.
|
|
|
metronomy |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.06.2009, 08:31
Titel:
|
|
na super!!
vielen vielen dank. Das hat geklappt. Immerhin bin ich jetzt einen Schritt weiter mit MATLAB und nicht mehr auf Kriegsfuß.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|