|
|
Suche Datenstruktur, um Resultate+Metadaten zu speichern |
|
Levin |
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 27.09.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.10.2020, 06:10
Titel: Suche Datenstruktur, um Resultate+Metadaten zu speichern
|
|
|
|
|
Hallo,
Mein Skript analysiert Messwert-Dateien (>1000 Dateien) in Abhängigkeit der Metadaten der Datei mit jeweils unterschiedlichen Methoden. Ich suche nun eine geeignete Datenstruktur, um die Resultate+Metadaten der jeweils analysierten Datei abzuspeichern, sodass ich im Nachgang z.B. den Durchschnitt (u.a.) der Resultate, die die gleichen Metadaten aufweisen, berechnen kann. Pro analysierter Datei werden 3-5 Kennwerte (in Abhängigkeit der gewählten Methode) und 1 Vektor (Länge>1e5) berechnet, zudem 4 Metadatenwerte. Ich habe mir überlegt, einen structure array zu nutzen, also etwas in der Form:
und dann die Ergebnisse einer Metadatengruppe 'group1' wie folgt zu filtern:
Hat jemand vlt Verbesserungsvorschläge? Zb, vlt eine andere Datenstruktur als struct-arrays, oder eine bessere Idee, die Resultate+Metadaten anzuordnen, um später einfacher darauf zugreifen zu können, und damit weitere Berechnungen anzustellen.
thx!
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 31.10.2020, 09:56
Titel:
|
|
Hallo,
das Struct Array ist ein sinnvoller Ansatz.
In der Abfrage meinst du vermutlich | statt &. Deutlich einfacher ginge die Abfrage mit ismember. Ich würde mir auch Strings ansehen. Die sind in vielerlei Hinsicht angenehmer in der Handhabung als char Arrays.
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 ;)
|
|
|
Levin |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 27.09.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.10.2020, 10:25
Titel:
|
|
Hallo,
Danke für das schnelle Feedback und den Tip mit den Strings!
Ich habe '& ' benutzt (vielleicht irre ich mich auch!), da jede Datei immer 4 Metadatenparameter ausgeben muss. Es müssen also alle 4 Metadaten-'Variablen' einen Wert zugeordnet bekommen; Dateien einer Gruppe müssen in allen 4 Metadaten-Parametern übereinstimmen (sie unterscheiden sich lediglich im Messdatum, dass ich in ein 5. Metadaten-Feld abspeichern würde).
Viele Grüße
Levin
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 31.10.2020, 10:33
Titel:
|
|
Hallo,
sorry, ich hatte übersehen, dass metavaln hochgezählt wird. Dann brauchst du in der Tat &. Strings sollten dennoch helfen, da du dann statt strcmp == verwenden kannst.
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 ;)
|
|
|
Levin |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 27.09.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.10.2020, 10:40
Titel:
|
|
Hallo,
Vielen Dank, die Tips machen das Abspeichern besser!
Viele Grüße
Levin
|
|
|
Levin |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 27.09.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.11.2020, 16:43
Titel:
|
|
Hallo!
Jetzt habe ich nochmal ein Problem: in meine results-structure wird für i=1 , der Wert überschrieben, sobald ich eine Iteration (i=2) weitergehe. Also, save2struct(1,"f1","Caco2","37","0.05","up") fügt alles korrekt in metadata ein, aber für save2struct(2,"f2","Caco2","37","0.05","up") wird results.metadata überschrieben.
Ich habe leider gerade Tomaten auf den Augen: vielleicht kann mir jemand weiterhelfen, auch für den Fall, dass man die Funktion etwas eleganter schreiben könnte!
Viele Grüße
|
|
|
Levin |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 27.09.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.11.2020, 17:13
Titel:
|
|
Hallo,
es lag daran, dass 'results.mat' nicht geladen wurde, ich habe nun die if-condition ersetzt:
bestimmt nicht die beste Lösung, aber es funktioniert.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.11.2020, 17:14
Titel:
|
|
Hallo,
ich würde das im Debugging-Modus durchgehen. Meine Vermutung ist, dass das Problem
strcmp sollte ja einen true/false-Vektor zurückgeben. Welchen Sinn macht es, darauf isempty anzuwenden? Das wird ja nie leer sein. Wenn, dann müsste man eher
verwenden?
Wenn du wissen willst, ob es eine results.mat gibt, ist der einfachste Weg
isfile
, alternativ
exist
.
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 ;)
|
|
|
Levin |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 27.09.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.11.2020, 17:27
Titel:
|
|
Hallo!
Ja, mit isfile ist es der beste Weg:
Vielen Dank!
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 02.11.2020, 20:27
Titel:
|
|
Hallo,
das "==1" kannst du auch weglassen. :)
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 ;)
|
|
|
Levin |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 27.09.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.11.2020, 06:21
Titel:
|
|
Hallo!
Perfekt, danke , dann hab ich wohl mit Kanonen auf Spatzen geschossen
Viele Grüße
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|