WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Export von Daten in ASCII-Format

 

metronomy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2009, 23:02     Titel: Export von Daten in ASCII-Format
  Antworten mit Zitat      
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:
Code:
save('I:\Test\Standort\2020\Standort2010.txt','ERG','-ASCII')

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.
Smile

edit by steve: Code-Umgebung ergänzt. Bitte selbstständig formatieren. Danke!


Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2009, 23:13     Titel:
  Antworten mit Zitat      
Guck Dir mal dlmwrite an. Da kannst Du sowohl Zahlenformat, als auch Trennzeichen vorgeben.
Private Nachricht senden Benutzer-Profile anzeigen
 
metronomy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2009, 09:40     Titel:
  Antworten mit Zitat      
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.
Crying or Very sad
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 15.06.2009, 09:43     Titel:
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2009, 09:45     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
metronomy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2009, 10:38     Titel:
  Antworten mit Zitat      
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

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.06.2009, 11:06     Titel:
  Antworten mit Zitat      
Das sollte mit dem zusätzlichen Parameter newline gehen.

Code:

dlmwrite(datei, daten, 'newline','pc')
 


Wobei 'pc' bedeutet, dass ein \r\n angehängt wird. Es gibt auch noch 'unix', wo dann nur ein \n angehängt wird.
Private Nachricht senden Benutzer-Profile anzeigen
 
metronomy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.06.2009, 09:31     Titel:
  Antworten mit Zitat      
na super!!
vielen vielen dank. Das hat geklappt. Immerhin bin ich jetzt einen Schritt weiter mit MATLAB und nicht mehr auf Kriegsfuß.
Smile
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.