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

Viele Messdaten sinnvoll speichern

 

MajorC
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.11.19
Wohnort: ---
Version: R2018b
     Beitrag Verfasst am: 10.11.2019, 12:43     Titel: Viele Messdaten sinnvoll speichern
  Antworten mit Zitat      
Hallo,

ich bin ganz neu in der Matlab Welt und versuche mich noch zurecht zu finden.

Aktuell habe ich das Problem, dass ich nicht weiß wie ich in Matlab meine Messdaten sinnvoll einlesen/speicher, so das ich dann weitere Berechnung damit durchführen kann.

Ich habe derzeit ca. 4.000 CSV Dateien. Jede CSV Datei hat im Dateinamen kodiert User-Setup-Durchlauf.csv
In jeder CSV Datei, die alle den gleichen Aufbaue haben, sind 10 Spalten mit unterschiedlichen Messwerten. Pro CSV Datei ungefähr 3.000-4.000 Zeilen Messpunkte.

Was ich schon geschafft habe, ist jede CSV Datei einzulesen und User, Setup und Durchlauf jeweils vor jeden Messpunkt zu schreiben und das ganze wieder in CSV-Dateien zurückzuschreiben, so das jeder Messpunkt diese Information hat.

Was ich mich jetzt frage, wie kann man diese Daten in Matlab sinnvoll speichern, so das ich sie filtern kann und weitere Berechnungen machen kann. Später möchte ich sowas machen wie "gib mir alle Messpunkte-X aus Durchlauf 2 von Setup 4". Oder auch: "berechne die Differenz zwischen Messpunkt X und Messpunkt Y alle Setups 2".

Ich dachte an eine Struktur die User, Setup und Durchlauf enthält und als viertes Element alle zugehörigen Messpunkte.

Oder gibt es eine schlauere Möglichkeit in Matlab? Und vor allem, wie programmiert man es Shocked

Vielen Dank
Christian
Private Nachricht senden Benutzer-Profile anzeigen


010101
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 07.09.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.11.2019, 13:11     Titel:
  Antworten mit Zitat      
Hi,

evtl. ist das Format "timetable" für Deine Aufgabenstellung geeignet?

VG
Private Nachricht senden Benutzer-Profile anzeigen
 
MajorC
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.11.19
Wohnort: ---
Version: R2018b
     Beitrag Verfasst am: 10.11.2019, 20:02     Titel:
  Antworten mit Zitat      
Hallo,

Timetable ist vielleicht für eine Messung brauchbar, ich suche noch eine MATLAB-Lösung die alle Ergebnisse strukturiert aufnimmt.
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: 10.11.2019, 20:42     Titel:
  Antworten mit Zitat      
Hallo,

Möglichkeiten gibt es viele. Die Entscheidung würde ich davon abhängig machen, wie in erster Linie die Zugriffe erfolgen sollen.

Zitat:
Was ich schon geschafft habe, ist jede CSV Datei einzulesen und User, Setup und Durchlauf jeweils vor jeden Messpunkt zu schreiben und das ganze wieder in CSV-Dateien zurückzuschreiben

Das sind doch dann sehr redundante Informationen? Wenn du das so machst, könntest du gleich einen Timetable für die gesamten Daten verwenden.

Wenn du das als Struktur-Array anlegen willst:
Code:
for k = 1: ...
S(k).User = ...
S(k).Setup = ...
...
end


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
 
MajorC
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.11.19
Wohnort: ---
Version: R2018b
     Beitrag Verfasst am: 10.11.2019, 21:06     Titel:
  Antworten mit Zitat      
Da hast du recht. Die Information ist redundant und eigentlich nicht notwendig.
Mir würde es reichen wenn ich sie in einer Art Struktur stehen hätte, ohne zu wissen ob die Marlab struct dafür zu nutzen ist.

Ich denke es reicht wenn man User Setup Durchlauf stehen hat und dann als 4 Element einen ??? der alle Messwerte enthält.

Zugriff weiß ich noch gar nicht wie ich das machen kann. Mir ist die Filtwrfunktion wichtig, da ich mit den Messdaten später in Abhängigkeit von Setup, Durchlauf oder User weitere Berechnungen mit dem Inhalt von Messwerten machen muss.

Wie gesagt, ich bin unbeleckt was MATLAB angeht.
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: 10.11.2019, 21:24     Titel:
  Antworten mit Zitat      
Hallo,

als 4. Element würde ich einen Table oder, wenn eine Zeitspalte dabei ist, Timetable wählen. Wie man beim Anlegen eines Structs generell vorgeht, habe ich dir ja schon geschrieben.

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
 
MajorC
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.11.19
Wohnort: ---
Version: R2018b
     Beitrag Verfasst am: 11.11.2019, 13:27     Titel:
  Antworten mit Zitat      
Vielen Dank. Das hat genau so funktioniert wie ich es mir gewünscht habe!

Jetzt schlage ich mich mit den Timetables rum. Da ich für Time nur ms haben, keine ganze Uhrzeit oder Datum. Hat da jemand auch eine Idee?

Ich bekomme den Fehler: Row times must be datetime or duration vector.

Code:
myTimetable = readtimetable(fullfile(files(anzahl).folder, files(anzahl).name),'RowTimes','Time_ms_');


Verstehe aber noch nicht, wie ich Matlab sagen kann, dass meine Row 'Time' nur Millisekunden enthält die bitte als Time genutzt werden sollen.

Meine Time Spalte sieht immer so aus:
Time [ms]
34
41
50
60
70
80
91
100

Also eigentlich alle 10 ms ein Messwert, manchmal leichte Ungenauigkeiten drin.
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: 11.11.2019, 17:57     Titel:
  Antworten mit Zitat      
Hallo,

ich würde die Daten zunächst als Table einlesen (readtable) und die Zeitspalte dann mit seconds in ein duration umwandeln. Dann sollte table2timetable funktionieren.

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
 
MajorC
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 10.11.19
Wohnort: ---
Version: R2018b
     Beitrag Verfasst am: 13.11.2019, 12:19     Titel:
  Antworten mit Zitat      
Hallo,

dein Hinweis hat mich zu einer Lösung gebracht.

Ich habe die Zeitspalte aus dem Struct rausgenommen und dann mit milliseconds in ein duration umwandeln. Ich hab es leider nicht geschafft, dass direkt im Struct zu machen.

Danach habe ich mir eine neue Timetable zusamengesetzt aus der neue Zeitspalte und dem restlichem Inhalt von Struct.

Vermutlich nicht schön, hat aber funktioniert Very Happy
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.