|
|
mit eval Daten in Matrix einlesen |
|
JN78 |

Forum-Fortgeschrittener
|
 |
Beiträge: 69
|
 |
|
 |
Anmeldedatum: 18.05.09
|
 |
|
 |
Wohnort: Stuhr
|
 |
|
 |
Version: R2010b, R2011a
|
 |
|
|
 |
|
Verfasst am: 09.08.2010, 20:22
Titel: mit eval Daten in Matrix einlesen
|
 |
|
 |
|
Guten Abend zusammen,
ich komme mit der "eval" Funktion irgendwie nicht wirklich klar.
Folgende Ausgangssituation:
Ich habe einige tausend Files, von denen ich immer einen bestimmten Bereich in eine Matrix einlesen möchte. Der Filename ist in dieser Form "2009_12_08_15_30_00_DATA.csv" alle 10 Minuten gibt es ein neues File, also:
- 2009_12_08_15_30_00_DATA.csv
- 2009_12_08_15_40_00_DATA.csv
- 2009_12_08_15_50_00_DATA.csv
- 2009_12_08_16_00_00_DATA.csv
usw.
Momentan mache ich das manuell in folgender Form:
- tempdata1 = dlmread('2009_12_08_15_30_00_DATA.csv', ';', 761, 0);
- tempdata2 = dlmread('2009_12_08_15_40_00_DATA.csv', ';', 761, 0);
- tempdata3 = dlmread('2009_12_08_15_50_00_DATA.csv', ';', 761, 0);
das wollte ich automatisieren und hab es wie folgt im Kleinen testweise probiert, leider ohne Erfolg.
for n=20:10:50
eval(['tempdata_',num2str(n),'= ', 'dlmread('2009_12_08_15_30_00_DATA.csv', ';', 761, 0)]);
end
Ich suche mir jetzt schon seit einigen Stunden einen Wolf und werde einfach nicht fündig. Wäre schön, wenn mir einer von Euch helfen könnte.
Im nächsten Schritt würde ich das gerne soweit automatisieren, dass Dateien mehrere Monate eingelesen werden. Wie gesagt die Dateinamen ändern sich jeweils in "10-Minuten" Schritten.
Vielen Dank für Eure Hilfe
Jan
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 09.08.2010, 22:23
Titel: Re: mit eval Daten in Matrix einlesen
|
 |
|
 |
|
Hallo JN78,
JN78 hat Folgendes geschrieben: |
ich komme mit der "eval" Funktion irgendwie nicht wirklich klar. |
Willkommen im Club. EVAL ist nicht benutzerfreundlich und verleitet zu ineffizientem Programmieren.
Da ich dass nun seit einem Monat täglich 8 mal sage, muss ich doch mal nachfragen, wie Du denn auf EVAL gekommen bist. Dieses Forum wimmelt nur so von Fragen bzgl. EVAL, ASSIGNIN und EVALIN, während z.B. im englischsprachigen CSSM-Forum diese Kommandos nur selten (etwa 1%) auftauchen und auch jedesmal mit einem gemeinschaftlichen "DON'T DO THAT" agberaten wird.
Wird EVAL im deutschsprachigen Raum von Matlab-Dozenten angepriesen, oder gibt es einen mir unbekanntes deutsches Matlab-Tutorial, das für alle möglichen Fälle EVAL anbietet? Ich bin ehrlich verblüfft.
Ja, das dürfte nicht laufen. Bekommst Du denn eine Fehlermeldung?
Schaue Dir mal die Zeile mit Syntax-highlighting im Editor an. der Datei-Name in DLMREAD ist kein String! Du würdest doppelte Quotes benötigen:
Ich rate aber ausdrücklich von EVAL ab. Die während der Laufzeit erzeugten Variablen behindern den effizienten Programmfluß deutlich und die die Übersichtlichkeit ist deutlich reduziert, so dass das Debuggen ohne jeden Vorteil erschwert wird.
Sicherer wäre es, die Variablen z.B. in einem Struct zu sammeln:
SPRINTF is etwas effizienter als die NUM2STR Methode, aber das mach keinen soo großen Unterschied.
Eine andere Idee wäre es, die Daten in einem CELL Array oder falls alle gleich groß sind, in einem Mehrdimensionalen Array zu speichern. Im letzteren Fall wäre auch die Bearbeitung in Matlab ausgesprochen effizient. Einen Wust von unterschiedlichen Variablen per EVAL zusammenzuwürfeln ist dagegen sehr langsam.
Gruß, Jan
|
|
|
JN78 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 69
|
 |
|
 |
Anmeldedatum: 18.05.09
|
 |
|
 |
Wohnort: Stuhr
|
 |
|
 |
Version: R2010b, R2011a
|
 |
|
|
 |
|
Verfasst am: 10.08.2010, 07:40
Titel:
|
 |
Hallo Jan,
danke für deine Antwort. Zu deiner Frage, ich bin auf eval durch Seite 87f "String-Evaluation" im Buch "MATLAB Kompakt" gekommen. Das dort dargestellte schien mir dem was ich gesucht habe am nächsten zu kommen.
Gruß Jan
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 10.08.2010, 20:29
Titel:
|
 |
Hallo Jan 78,
dann werde ich doch mal dem Autor meine persönlichen Grüße schicken ;-)
Gruß, Jan
|
|
|
|
|
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 - 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.
|
|