WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Einzelne Spalten aus csv Datei

 

FloWe
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 13.02.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.02.2014, 14:42     Titel: Einzelne Spalten aus csv Datei
  Antworten mit Zitat      
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.

Vielen Dank
Flo
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.02.2014, 15:35     Titel:
  Antworten mit Zitat      
Hallo

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

doc plot
doc textscan
doc datenum
doc datetick



 
Private Nachricht senden Benutzer-Profile anzeigen
 
FloWe
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 13.02.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.02.2014, 16:05     Titel:
  Antworten mit Zitat      
Danke für die schnelle Antwort.

ich habe versucht die Datei mit load und fopen zu öffnen, hatte aber eine falsche syntax wenn ich den code von dir so ansehe Very Happy 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

test12a.txt
 Beschreibung:

Download
 Dateiname:  test12a.txt
 Dateigröße:  3.07 MB
 Heruntergeladen:  1049 mal


Zuletzt bearbeitet von FloWe am 13.02.2014, 16:27, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.02.2014, 16:21     Titel:
  Antworten mit Zitat      
Dateiendung bitte umbenennen z.B zu .txt
dann klappt das mit dem Anhängen
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.02.2014, 20:08     Titel:
  Antworten mit Zitat      
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')
 
Private Nachricht senden Benutzer-Profile anzeigen
 
FloWe
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 13.02.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.02.2014, 21:07     Titel:
  Antworten mit Zitat      
Danke, ich probiers morgen gleich aus und gebe dann Rückmeldung Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
FloWe
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 13.02.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2014, 12:08     Titel:
  Antworten mit Zitat      
Sry, ich musste ein paar Tage weg.

hab noch hilfe von nem kumpel bekommen Smile funktioniert super Wink

vielen Dank Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.