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

Einlesen mehrerer Variablen aus einem ASCII-File

 

Ekepetete
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 03.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.04.2014, 21:25     Titel: Einlesen mehrerer Variablen aus einem ASCII-File
  Antworten mit Zitat      
Hallo zusammen,

ich speichere in meinem Programm mehrere Variablen untereinander in einem ASCII-File ab. Da sind dann (immer) zwei Zeilen-Vektoren und zwei Matrizen drin. In einer Kommentarzeile, jeweils oberhalb der Variable steht, was es denn nun ist und zwischen zwei Variablen ist zur besseren Übersichtlichkeit eine Leerzeile eingefügt.

Nun möchte ich diese Variablen gerne in einem anderen Matlab-Prg einlesen, was ich bis jetzt trotz intensiver Recherche noch nicht hinbekommen habe. Das Problem ist, dass die Dimensionen der Variablen variieren können, also beim Einlesen nicht bekannt sind. Die beiden Matrizen haben dieselbe Größe und die Länge vom ersten (oberen) Vektor gleicht ihrer Spaltenzahl, die vom zweiten der Zeilenzahl.
Ich wollte es mit textscan machen, nur muss ich dafür doch die Dimensionen kennen?
Kann man ihm nicht sagen, dass er die Kommentarzeilen weglassen soll, dann die jeweilige Variable (Zahlenwerte) bis zum Ende einlesen und dann zur nächsten Variable springen soll?

Es würde mich freuen, wenn jmd. Rat wüsste.

Viele Grüße und noch einen schönen Feiertag
Alex

Ps: Vielleicht habe ich das alles auch nur ungünstig abgespeichert, aber ich wollte eg schon gerne alles in einer Datei haben.

ergebnis.m
 Beschreibung:
Als ASC-File durfte (?) ich es leider nicht hochladen, deswegen habe ich es in einen M-File umgewandelt.

Download
 Dateiname:  ergebnis.m
 Dateigröße:  162.96 KB
 Heruntergeladen:  201 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 21.04.2014, 11:26     Titel: Re: Einlesen mehrerer Variablen aus einem ASCII-File
  Antworten mit Zitat      
Hallo Ekepetete,

Arrays in einem ASCII-File zu speichern ohne vorher die Dimensionen anzugeben, ist wirklich unpraktisch. Wie wäre es also, zuerst die Dimensionen anzugeben?
Kommentarzeilen sollten am besten eindeutig erkennbar sein, z.B. an einem Sonderzeichen als ersten Buchstaben.

Wenn Du die Daten als binäres MAT-File abspeicherst erübrigen sich die Schwierigkeiten beim Einlesen. Hat es wirklich Vorteile die Daten menschenlesbar auf der Platte zu lagern?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Ekepetete
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 03.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2014, 12:43     Titel: Re: Einlesen mehrerer Variablen aus einem ASCII-File
  Antworten mit Zitat      
Hallo Jan,

vielen Dank für die schnelle Antwort. Das mit den Dimensionen wusste ich nicht. Du meinst, in der allerersten Zeile sollte man die Dimensionen als Zeilenvektor angeben? Das könnte ich notfalls noch machen.

Meine Kommentarzeilen beginnen immer mit einem %-Zeichen. Ich dachte, das wäre so der Standard für Kommentare. Welches sollte ich stattdessen nehmen?

Die Idee hinter der Speicherung im ASCII-Format war die, dass die Daten später evtl. auch mal von anderen Programmen (z.B. TecPlot) gelesen werden können.

Viele Grüße,
Alex
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 21.04.2014, 22:33     Titel: Re: Einlesen mehrerer Variablen aus einem ASCII-File
  Antworten mit Zitat      
Hallo Ekepetete,

"%" ist gut für Kommentare.

Wenn nur Matrizen gespeichert werden, sind Zeilen und Spalten-Zahlen hinreichend.
Ich kenne mich mit TecPlot nicht aus. Möglicherweise wäre das Einlesen von Binär-Datein von dort aus ebenfalls einfacher.
http://www.cfd-online.com/Forums/tecplot/103860-mat2tecplot.html

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Ekepetete
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 03.03.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2014, 15:13     Titel: Re: Einlesen mehrerer Variablen aus einem ASCII-File
  Antworten mit Zitat      
Hallo,

ja gut. Ich wollte das jetzt schon so als ASCII-File beibehalten. Es beschränkt sich auch nicht auf TecPlot, soweit ich weiß. Wenn ich die Dimensionen oben noch mit angebe, geht es ja auch so.

Eine Frage habe ich aber noch:
Wenn ich dlmread anwende, dann kann man ihm ja den RANGE = {R1 C1 R2 C2}, wo er lesen soll, mit angeben. Muss ich den Wert der zweiten Spalte C2 auch als Zahl mit angeben? Oder könnte ich da nicht einfach sagen, so lang wie es eben geht? Dann müssten die Dimensionen nicht mehr mit angegeben werden.

Viele Grüße und Danke,
Alex
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 2025 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.