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 einer csv importieren

 

Hansa65
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 04.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.10.2021, 09:49     Titel: Daten einer csv importieren
  Antworten mit Zitat      
Hallo zusammen.

Ich habe mehrere Datein im csv Format. Hierbei handelt es sich um Daten einer Bewegungsanalyse bestehend aus Bodenreaktionskräften, EMG- und Markerdaten. Die EMG-Daten und Bodenreaktionskräfte wurden mit einer Aufnahmefrequenz von 1000Hz aufgenommen, die Markerdaten mit nur 100Hz. Daher befinden sich die Bodenreaktionskräfte und EMG-Daten in der Matrix nebeneinander und die Markerdaten beginnen quasi in einem neuen Datensatz ab Zeile 200000. Da die Aufnahmedaur in jeder Datei anders ist, beginnen die Markerdaten immer in einer anderen Zeile. Daraus ergibt sich folgendes Problem.

Beim importieren in Matlab als Tabelle mit der Funktion readtable werden die Überschriften der Bodenreaktionskräfte und EMG-Daten erkannt, die der Markerdaten werden nur als NaN dargestellt. Gibt es hierfür eine elegante Lösung die Überschriften ebenfalls einzulesen?

Beste Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.10.2021, 16:05     Titel:
  Antworten mit Zitat      
Hallo,

hänge bitte eine (evtl. gekürzte) Beispieldatei im vorliegenden Format (d.h. nicht als Screenshot) an. Dann kann man deine Erläuterungen viel besser nachvollziehen und den Vorschlag auch gleich ausprobieren.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Hansa65
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 04.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.10.2021, 15:20     Titel:
  Antworten mit Zitat      
Hallo zusammen,

anbei eine Testdatei als zip, da sie sonst zu groß wäre.

Beste Grüße

Testdatei.zip
 Beschreibung:

Download
 Dateiname:  Testdatei.zip
 Dateigröße:  28.87 MB
 Heruntergeladen:  220 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 19.10.2021, 16:11     Titel:
  Antworten mit Zitat      
Hallo,

ich würde die Daten so einlesen:
Code:
opts = detectImportOptions('Testdatei.csv');
opts.VariableNamesLine = 4;
opts.DataLines = [6, inf];
opts.ExtraColumnsRule = 'ignore';
T = readtable('Testdatei.csv', opts);


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Hansa65
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 04.05.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.10.2021, 09:07     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank für deinen Vorschlag zum einlesen der Daten. Leider entsteht bei dieser Variante auch das Problem, dass die Markerdaten ab Zeile 198816 keine Überschriften haben. Gibt es eine Möglichkeit auch diese Zwischenüberschriften einzulesen?

Beste Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.10.2021, 09:32     Titel:
  Antworten mit Zitat      
Hallo,

wenn du genau weißt, wo die Zwischenüberschriften sind:

Code:
opts = detectImportOptions('Testdatei.csv');
opts.VariableNamesLine = 4;
opts.DataLines = [6, 198811];
opts.ExtraColumnsRule = 'ignore';
T = readtable('Testdatei.csv', opts);

opts.VariableNamesLine = 198819;
opts.DataLines = [198822, inf];
T2 = readtable('Testdatei.csv', opts);


Ansonsten müsste man basteln und schauen, wo in T leere Zeilen sind, und da einen "neuen Anlauf" machen. Die beiden Tables kann man dann auch nebeneinander bringen, z.B. mit
Code:
T_combined = join(T, T2, "LeftKeys","Frame","RightKeys","Var1");


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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 - 2024 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.