Verfasst am: 14.11.2008, 14:11
Titel: Einlesen Matlab - komplexe Struktur
Hallo,
ich möchte ein großes (ca. 600000 zeilen) txt file einlesen, das immer 3 zeilen header hat, aus dem ich die lat-long info rausnehmen will; der schaut so aus:
danach kommt wieder ein header usw.
was ist das beste zum einlesen?
textread und load geht nicht, weil unterschiedliche spaltenanzahl innerhalb des dokuments
textscan wäre vielleicht gut; da kapier ich aber einfach nicht, wie ich den text-header immer überspringen kann.
kann mir da jemand helfen?
danke
j.
ich hänge noch eine kurze testdatei dran.
Hallo,
ich möchte ein großes (ca. 600000 zeilen) txt file einlesen, das immer 3 zeilen header hat, aus dem ich die lat-long info rausnehmen will; der schaut so aus:
East: 18 deg 55 min, North: 48 deg 55 min
darunter kommt immer ein block mit zahlen, die ich ganz normal in ein cell array einlesen will
bsp.:
1800 52 15 25 19 128 98 58 57 82 64 88 44
1801 29 36 58 45 83 82 84 35 122 48 97 75
[..]
danach kommt wieder ein header usw.
was ist das beste zum einlesen?
textread und load geht nicht, weil unterschiedliche spaltenanzahl innerhalb des dokuments
textscan wäre vielleicht gut; da kapier ich aber einfach nicht, wie ich den text-header immer überspringen kann.
kann mir da jemand helfen?
danke
j.
ich hänge noch eine kurze testdatei dran.
Hi Jakob,
textscan würde schon funktionieren - es liest immer soweit, wie es mit dem angegeben format string kommt. Du müsstest also mit einem für den Header geeigneten format string anfangen, dann einen für den Zahlenblock nehmen usw. bis Du das Ende der Datei erreicht hast. Ggf. musst Du per fgetl einzelne Zeilen zwischendurch überspringen.
Eine Alternative: Im Matlab File Exchange gibt es eine Import-Funktion 'txt2mat' zum Herunterladen, die die Möglichkeit eingebaut hat, Strings vorm Import zu ersetzen. Das kann man nutzen, um die "Nicht-Zahlen" rauszuwerfen; bei Deiner Datei ginge das mit etwas Frickelei sogar so, dass man die Zeichenzahl nicht ändert und in jeder Zeile die gleiche Anzahl Zahlen hat (bis auf die leeren Zeilen natürlich):
Damit hättest Du jedenfalls alle Zahlen in einer Matrix, wobei die Orts-Daten 'künstlich' in die Zeilen gesteckt wurden, die mit einem NaN beginnen. Im Beispiel habe ich die mal nach "LocationNumbers" extrahiert. Die große Matrix A müsstest Du dann entsprechend weiter nach eigenen Wünschen zerlegen.
Hoffe, Dir ist damit geholfen!
Jakob
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 17.11.2008, 16:35
Titel:
Vielen Dank,
Lim!!
hat super funktioniert und ist eine feine möglichkeit. werde das txt2mat weiterempfehlen!!
einen schönen tag noch,
j.
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.