Automatisiertes Plotten und Speichern von CSV-Dateien
Chris99999
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 22.09.2015, 14:48
Titel: Automatisiertes Plotten und Speichern von CSV-Dateien
[/code]Hallo liebes Forum!
Als Anfänger in der Matlab-Welt tue ich mich gerade sehr schwer und hoffe auf eure Hilfe, ich denke das Problem ist schnell zu lösen:
Ich möchte gerne um die 50 Datensätze als csv-Dateien hintereinander automatisch einlesen und plotten entsprechend meiner Vorgaben. Ich habe es schon geschafft, dass ich das Verzeichnis beliebig wählen kann und eine Auflistung aller Dateien bekomme, die in diesem Verzeichnis liegen.
Mdir = dir(pathname);
nbentries = size(Mdir, 1);
Mfiles = [];
for entry_i = 1:nbentries
if Mdir(entry_i).isdir == false
filename = Mdir(entry_i).name;
if filename(1) ~= '.'
[p, n, ext] = fileparts(filename);
ifstrcmpi(ext, '.csv')
Mfiles = strvcat(Mfiles, filename) end end end end
nbfiles = size(Mfiles, 1)
Als nächstes müsste ich eine Schleife programmieren, die auf die angezeigten Dateien nach und nach Bezug nimmt und diese bearbeitet. Bearbeiten heißt: Entsprechend meiner Wünsche formatieren, beschriften usw., und dann als png und epsc mit am besten "Diagramm" und der fortlaufenden Nummer abspeichert. Aber ich kriege die Fragmente einfach nicht zusammen. Wäre jemand so lieb und könnte mir helfen?
Vielen Dank für Deine Antwort! Zunächst einmal muss ich mich als völliger Matlab-Anfänger outen, und leider fehlen mir (noch) die Basics, um mit dem Programm halbwegs vernünftig arbeiten zu können. Entschuldige bitte daher, dass ich mein Anliegen eher so aufschreibe als in Code-Form. Folgende Aufgabenstellung habe ich zu bewerkstelligen:
In einem Verzeichnis werden etliche Datensätze hinterlegt als CSV-Datei, darin jeweils x- und y-Werte. Die Dateien heißen alle "Datensatz1.csv" und dann mit fortlaufender Nummer. Mal sind es nur fünf Dateien, mal fünfzig oder mehr. Da ich gerne immer ein einheitlich formatiertes Diagramm für jeden einzelnen Datensatz erstellt habe möchte ("Diagramm1.png" sowie "Diagramm1.epsc" und fortlaufend), kam mir die Idee dieses Problem mit Matlab anzugehen. Die genaue Formatierung der Diagramme ist jetzt erstmal egal.
Zunächst habe ich den oberen Code gefunden und modifiziert, so dass ich aufgefordert werde ein Verzeichnis auszuwählen. In diesem Verzeichnis befinden sich die Datensatz1.csv, Datensatz2.csv usw.
Mdir = dir(pathname);
nbentries = size(Mdir, 1);
Mfiles = [];
for entry_i = 1:nbentries
if Mdir(entry_i).isdir == false
filename = Mdir(entry_i).name;
if filename(1) ~= '.'
[p, n, ext] = fileparts(filename);
ifstrcmpi(ext, '.csv')
Mfiles = strvcat(Mfiles, filename) end end end end
nbfiles = size(Mfiles, 1)
Ich bekomme also eine Auflistung aller CSV-Dateien im Verzeichnis. Als nächstes möchte ich gerne nacheinander jede einzelne Datei öffnen (Datensatz1.csv, Datensatz2.csv usw.), die zwei Spalten für x und y auslesen, und daraus einen Graph plotten sowie in zwei Dateiformaten speichern. Das Abspeichern erfolgt dann als "Diagramm1", "Diagramm2" usw.
Nur: Wie kann ich auf die in den CSV-Dateien enthaltenen x/y-Spalten zugreifen, die mir oben im Rahmen von
Klappte alles wunderbar, nur wie mache ich das mit fortlaufendem Dateinamen? Also Datensatz1.csv, dann Datensatz2.csv usw. Oder gibt's da insgesamt eine elegantere Lösung?
Vielen vielen Dank auf jeden Fall schonmal für Deine Hilfe!
Klappte alles wunderbar, nur wie mache ich das mit fortlaufendem Dateinamen? Also Datensatz1.csv, dann Datensatz2.csv usw. Oder gibt's da insgesamt eine elegantere Lösung?
das klingt nach einem Standard-Problem, oder? Das hat doch bestimmt schon mal jemand anderes gefragt. Wahrscheinlich sogar öfters. Und in der Tat: Es ist Bestandteil der Matlab FAQ, der frequently asked questions. Es lohnt sich also, einfach mal die Lieblings-Internetsuchmaschine danach zu fragen: "Matlab fortlaufende dateinamen" oder auch "Matlab FAQ".
Der Tipp mit den FAQ ist noch viel allgemeiner: Da stehen noch weitere Schätze drin und es ist sehr effizient und erholsam, von den Fehlern zu lernen, die andere schon für einen erledigt haben.
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.