ich würde nun gerne die 2 Spalte einlesen und zwar automatisch, da es über 800 Werte sind und es bis jetzt 18 Files sind. Und das wohl auch öfter nötig sein wird.
Vorab eine Frage: sind die Dateien immer gleich formatiert? Also hast Du immer zehn Zeilen Header und danach immer drei Spalten Daten? Dann könnte Dir der Befehl dlmread weiterhelfen
Dlmread liest alle Daten ab einer bestimmten Zeile ein (alles darüber wird ignoriert) und ab einer bestimmten Spalte. Der zweite Parameter im Funktionsaufruf ist das Trennzeichen, also entweder Leerzeichen ' ' oder Tabulator '\t'.
Wenn die Dateien immer unterschiedliche viele Headerzeilen oder Spalten haben,
kann ich Dir eine Lösung anbieten, die zwar funktioniert, aber leider nicht sehr schnell ist.
Allerdings ist es leider so, dass ich den code nur im Büro haben und nicht auswendig komplett hinbekomme (habe daheim leider kein matlab). Ich könnte bei Interesse Montag ein Beispiel posten. Meine Lösung sieht so aus:
Mit dem Befehl textread wird die Datei in ein cell-array eingelesen, jede Zeile ist ein String-Array. Dann wird mittels cellfun nach der Kopfzeile gesucht (in diesem Fall "Frequency" "Data Trace Real" "Data Trace Imag"1)
und dann mittels strfind die Nummer der gewünschten Spalten herausgesucht. Hat man die Nummer der Spalte nach der Überschrift bestimmt und die Kopfzeile, kann man nun alle folgenden Zeilen einlesen und jeweils den zweiten/dritten/etc Wert in ein Array kopieren.
Das ergibt also eine FUnktion, der man Dateiname(n) und Spaltennamen übergibt, und die die Daten in den entsprechenden Spalten zurückliefert.
Interesse? Dann schaue ich, dass ich MOntag den Code mitbringe. Gerade mit cellfun komme ich immer durcheinander ...
Der Nachteil an der Verwendung von textread ist allerdings, dass Matlab bei der Verarbeitung von cell-arrays etwas langsamer zu sein scheint als wenn man die Einleseroutine gleich mit fscanf schreibt (wie Du bereits angefangen hast) - Bei der Verwendung von fscanf werden ja auch nur die benötigten Daten in den Speicher kopiert.
_________________
---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
in zeile stehen die Zeilen des Cell-arrays CArray, die 'Data Trace Imag' enhalten. Damit kannst Du (bei variablen Formaten) die jeweilige Zeile bestimmen, ab der Daten geschrieben sind.
_________________
---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
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
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.