Verfasst am: 13.02.2014, 14:42
Titel: Einzelne Spalten aus csv Datei
Hallo Zusammen.
warscheinlich ist mein Anliegen ein Anfängerproblem. Bitte verweist mich jetz nicht auf google. Ich habe schon einiges probiert. Bin allerdings auch nicht wirklich erfahren im Umgang mit MatLab.
Ich habe eine csv-Datei mit richtig vielen Daten (600000 Zeilen!! und es werden noch mehr). Es handelt sich dabei um Messadten eines Sensors.
Die erste Zeile besteht aus den Spaltenübersriften und dann folgen nur noch Zahlenwerte. von den 20 Spalten die erstellt werden kann ich im Moment aber nur die 1. 3. und 4. brauchen. ist es möglich diese per Befehl aus der Datei zu lesen und ein 2D-Diagramm Daraus zu erstellen? in Spalte 1 befindet sich der Zeitstempel, 3 ist ein Signalwert und 4 ein Referenzwert der sich mit der Zeit verändert.
das wäre mit TEXTSCAN möglich,
aber ich kann hier nur eine Art Pseudocode schreiben,
weil der Aufbau der Datei ist mir nicht ganz klar, also welche Werte sind denn in den Spalten. Timestamp Aufbau? Also Hilfreiche wäre ein Ausschnitt der Datei zu posten, oder ein Text-Beispiel anzuhängen
Außerdem, wenn du was versucht hast, bitte auch hier posten, vielleicht hast du bereist das versucht was ich dir gerade vorschlage.
Und beschreiben was nicht geklappt hat, was du erwartet hast.
Bitte auch die kompletten Fehlermeldungen posten
Lese auch hier, richtig fragen:
http://www.gomatlab.de/faq-richtig-fragen-t6534.html
Code:
fid = fopen('pfad_zu_deiner_datei.csv')
%
% Achtung Prozent-Zeichen mit Stern %*, bedeutet dass man den Wert ignorieren soll % deswegen mit repmat erzeugen für die restlichen Spalten
formatstr = ['%s %*n %n %n', repmat('%*n ',1,16)];
data= textscan(fid, formatstr ,'HeaderLines' ,1, 'delimiter' ,',') fclose(fid);
% danach muss den Timestamp in Matlab Timestamp überführen % plotte dann, erstelle Diagramm z.B mit dem plot Befehl % bitte in der Doku schauen
ich habe versucht die Datei mit load und fopen zu öffnen, hatte aber eine falsche syntax wenn ich den code von dir so ansehe wie gesagt. bin blutiger anfänger.
Ich habe jetzt mal eine Datei angehängt wo ich ein paar sekunden aufgezeichnet habe. Leider erzeugt mein programm jede 1/5 sekunde einen Messwert und ich will etwa 20h aufzeichnen :/ naja....
Auf jedenfall wäre mir schon sehr geholfen wenn ich aus den ca 20 spalten die Spalten 1, 3 und 4 "rausziehen" könnte und jeweils einen graph von 3 und 4 über 1(Timestamp) machen könnte.
konnte es nur als txt anhängen. habe aber eigentlich ne csv
Hallo
so ungefähr, mit dem Plot bitte sich alleine beschäftigen, weil ich keine Ahnung habe, was und wie dargestellt werden soll.
Code:
fid = fopen('test12a.txt')
%
% Achtung Prozent-Zeichen mit Stern %*, bedeutet dass man den Wert ignorieren soll % deswegen mit repmat erzeugen für die restlichen Spalten
formatstr = ['%s %*d %n %n', repmat('%*d ',1,7), repmat('%*s ',1,9), repmat('%*d ',1,7)];
data = textscan(fid, formatstr ,'HeaderLines' ,1, 'delimiter' ,';');
fclose(fid);
% danach muss den Timestamp in Matlab Timestamp überführen
timestamp = datenum(data{1},'HH:MM:SS')
signal0 = data{2}
reference0 = data{3}
% Diagramm z.B mit dem plot Befehl erstellen % bitte in der Doku hier genauer schauen figure;
hold on
plot(timestamp, signal0, 'g-') plot(timestamp, reference0,'r-') hold off
legend({'signal', 'reference'});
% set( gca,'XTick', timestamp)
% um die Zeit auf der X Achse darzustellen datetick('x','HH:MM','keeplimits')
hab noch hilfe von nem kumpel bekommen funktioniert super
vielen Dank
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.