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

Daten aus vielen CSV Dateien zusammenfuehren / analysieren

 

Emil
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 21.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.01.2013, 17:56     Titel: Daten aus vielen CSV Dateien zusammenfuehren / analysieren
  Antworten mit Zitat      
Liebes Forum,

ich möchte viele CSV-Dateien für sechs Messreihen auslesen. D.h. erst mal für eine, die fünf anderen sollten dann einfach werden Smile
Eine Messreihe kreiert täglich zwei CSV-Dateien (eine digital output und eine analog input) mit jeweils Datum (dd.mm.yy) Zeit (hh:mm:ss) und dann sieben Werte, für alles 8640 Zeilen.

Bsp:
DATE ,TIME ,Tr_R1_AI0 ,Tr_R1_AI1
18.01.2013 ,00:00:10 , 9,59375 , 19,87188
18.01.2013 ,00:00:20 , 9,58750 , 19,87188
18.01.2013 ,00:00:30 , 9,59375 , 19,87188

und

DATE ,TIME ,Tr_R1_Step ,Tr_R1_DO1
18.01.2013 ,00:00:10 , 4,00000 , 1,00000
18.01.2013 ,00:00:20 , 4,00000 , 1,00000

usw.
Zur Analyse von Trends und Abhängigkeiten möchte ich alle Werte (also Datum, Zeit plus AI plus DO) über mehrere Wochen "zusammenfügen".
Kann ich da einzelne Variablen für jede Spalte definieren und mit mehreren Dateien füttern plus mit dem getrennten Datum / Uhrzeit verknüpfen?

Evtl. kann mir jemand einen Buch- oder Forenabschnitt zu solchen Themen empfehlen, bzw. mir helfen, nach welchen Stichworten ich bei dem Problem suchen muss?

Vieln Dank!!!!

Emil

Viel
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.01.2013, 04:45     Titel:
  Antworten mit Zitat      
Hallo,

in 2012b kannst du die Datei doppelklicken um sie zu importieren, und daraus auch Code erzeugen. Aufpassen musst du u.a. auf das Dezimaltrennzeichen. Wird in der Datei tatsächlich Komma als Spalten- und als Dezimaltrennzeichen verwendet?!
Bei frühereren Versionen kann man das Dezimaltrennzeichen nicht einstellen, da musst du die Datei vorverarbeiten, indem du Kommas durch Punkte ersetzt. Funktionen dafür sollten sich per Google finden lassen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Emil
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 21.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2013, 11:36     Titel:
  Antworten mit Zitat      
Hallo, danke für die schenlle Antwort.

Ja, in der Datei wird tatsächlich Komma als Dezimaltrennzeichen verwendet - und auch als Spaltentrennung, allerdings ist (zum Glück) noch ein Leerzeichen vor den jeweiligen Kommas.

Das habe ich versucht, bzw. mit dem Button "import data" (kommt auf das Gleiche raus) und daraus dann eine Funktion generiert, was recht einfach geht.

Dann komme ich aber schon an meine Grenzen: Wenn ich die Daten in Form von Matrix / Dataset / Cellarray importieren will, gibt es folgende Fehlermeldung: "Error using textscan. Invalid file identifier."

Ist es da sinvoller, einen Column-Vektor einzulesen (das funktioniert einwandfrei)? Und wie reihe ich dann die Informationen aus mehreren Dateien hintereinander? Und wie verknüpfe ich sie zusätzlich mit Datum und Zeit?

Vielen Dank für die Hilfe

Gruß,
Emil
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.01.2013, 13:39     Titel:
  Antworten mit Zitat      
Hallo,

mich erstaunt, dass es mit Column Vector geht und mit den anderen Optionen nicht. Normal deutet die Fehlermeldung auf einen inkorrekten Dateinamen oder so hin.

Du kannst die Informationen z.B. mit [] verketten:
Code:

filelist = {'file1.txt', 'file2.txt', ...};
data = [];
for I = 1:length(filelist)
newdata = importfile(filelist{I}); % importfile ist der Name der generierten Funktion
data = [data; newdata];
end


Klappt allerdings nur, wenn die Daten wirklich sehr ähnlich strukturiert sind.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Emil
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 21.01.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2013, 15:36     Titel:
  Antworten mit Zitat      
Hallo Harald,

Nochmal danke!

Das mit dem Column Vector: Ich habe es jetzt noch mal mit einer umbenannten Datei (B01.csv anstatt data_211212_R1_AI.csv) gemacht,. Das funktioniert wieder besser mit dem Column Vector (ergibt die richtigen Zahlen) und immerhin fast mit Matrizen (ergibt sehr viele NaN und einige Zahlen, die ich so nicht in der Datei wiederfinde, aber immerhin)

Die Dateien sind exakt gleich strukturiert, da sie von einem Leitsystem täglich automatisch generiert werden. Ich werde mich jetzt mal daran versuchen, einen Vector aus mehreren Dateien zusammensetzen. An anderen Stellen hier im Forum habe ich auch schon Hinweise auf Schleifen zum einlesen der Dateinamen gefunden.
Kann ich die Zahlen dann jeweils noch einem Datum und einer Uhrzeit zuweisen?

Gruß,
Emil
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.01.2013, 20:03     Titel:
  Antworten mit Zitat      
Hallo,

das "Zuweisen" in dem Sinn ist nicht unbedingt üblich. Meist arbeitet man mit einem Vektor von Datumsangaben und einem zugehörigen Datenvektor / einer Datenmatrix.
Du kannst dir natürlich Timeseries oder Financial Timeseries ansehen, aber ich sehe darin wenig Nutzen.

Bei Problemen mit Import bitte eine Beispieldatei anhängen und möglichst detailliert sagen, wo genau die Probleme sind.

Grüße,
Harald
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.