|
|
Ordner mit Simulationsdateien durchsuchen und Werte speicher |
|
JP186 |
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 18.04.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.04.2022, 11:16
Titel: Ordner mit Simulationsdateien durchsuchen und Werte speicher
|
|
Hallo zusammen,
ich bin noch recht unerfahren im Umgang mit Matlab.
Nun habe ich ein Skript bekommen, welches Simulationen durchführt und diese speichert. Meine Aufgabe ist es nun diese gespeicherten Simulationen zu durchsuchen und gewisse Werte daraus abzugreifen, in einer Tabelle zu speichern und am Ende daraus Plots zu erstellen.
Ich habe es geschafft, dass die relevanten Messwerte in den Dateien gespeichert werden und ich diese auch abgreifen kann. Plots zu erstellen ist auch kein Problem und ich kann die Daten auch in einer Tabelle speichern.
Mein Problem ist den Ordner mit den Simulationsdateien automatisch durchsuchen zu lassen und dann alle Werte in die richtige Spalte schreiben zu lassen.
Über ein wenig Hilfe würde ich mich sehr freuen
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.04.2022, 14:30
Titel:
|
|
Hallo,
da hast du ja schon einiges geschafft.
Ich würde mit
dir
eine Liste der Dateien erstellen und diese in einer for-Schleife abarbeiten nach diesem Muster:
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 ;)
|
|
|
JP186 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 18.04.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.04.2022, 16:23
Titel:
|
|
Vielen Dank, das werde ich direkt mal ausprobieren.
Wie kann ich denn dann in der Schleife auf die Daten aus der Datei zugreifen und es in eine entsprechende Zeile der Tabelle schreiben?
Je nach Datei muss es nämlich in verschiedene Tabellen oder Zeilen geschrieben werden. Die Unterscheidung ist im Dateinamen hinterlegt.
Bisher kann ich die Tabelle nur "stationär" erstellen. Also einmal Zahlen definieren und diese dann speichern.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.04.2022, 16:30
Titel:
|
|
Hallo,
currentFile ist der Dateiname. Wie es damit dann weitergeht, ist von Dateiformat und -inhalt abhängig. Wenn du dazu Fragen hast, müsstest du sie konkretisieren.
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 ;)
|
|
|
JP186 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 18.04.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.04.2022, 16:41
Titel:
|
|
Das Dateiformat der Simulationsdatei ist ganz normal .mat und die Daten die ich auslesen will sind im Workspace gespeichert. Dort sind sie als ganz normale Variablen (1x1 double) gespeichert.
Ich hoffe die Angaben helfen dir weiter
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.04.2022, 19:54
Titel:
|
|
Hallo,
dann kannst du die Variablen mit load laden und dann "wie immer" damit arbeiten.
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 ;)
|
|
|
JP186 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 18.04.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.04.2022, 20:26
Titel:
|
|
Hallo,
alles klar. Ich habe darüber hinaus dann aber noch das Problem mit der Tabelle. Wie kriege ich das hin, dass die Daten immer in eine neue Zeile geschrieben werden und je nach Dateiname teilweise auch in unterschiedliche Tabellen?
Grüße
JP
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.04.2022, 21:28
Titel:
|
|
Hallo,
Zitat: |
Ich habe darüber hinaus dann aber noch das Problem mit der Tabelle. Wie kriege ich das hin, dass die Daten immer in eine neue Zeile geschrieben werden |
Geht es wirklich um eine Tabelle im Sinne des Datentyps table? Die einfachste Möglichkeit wäre wohl, einen Table mit den selben Variable Names zu erstellen und die Tables untereinanderzuhängen mit der Syntax [a; b]. Bei Matrizen kannst du diese Syntax direkt verwenden.
Zitat: |
je nach Dateiname teilweise auch in unterschiedliche Tabellen? |
Wie soll denn unterschieden werden, was wohin geschrieben werden soll?
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 ;)
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.04.2022, 21:29
Titel:
|
|
Hallo,
Zitat: |
Ich habe darüber hinaus dann aber noch das Problem mit der Tabelle. Wie kriege ich das hin, dass die Daten immer in eine neue Zeile geschrieben werden |
Geht es wirklich um eine Tabelle im Sinne des Datentyps table? Die einfachste Möglichkeit wäre wohl, einen Table mit den selben Variable Names zu erstellen und die Tables untereinanderzuhängen mit der Syntax [a; b]. Bei Matrizen kannst du diese Syntax direkt verwenden.
Zitat: |
je nach Dateiname teilweise auch in unterschiedliche Tabellen? |
Wie soll denn unterschieden werden, was wohin geschrieben werden soll?
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 ;)
|
|
|
JP186 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 18.04.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.04.2022, 09:14
Titel:
|
|
Hallo,
Zitat: |
Geht es wirklich um eine Tabelle im Sinne des Datentyps table? |
Bisher habe ich immer den Datentyp Tabelle genutzt. Ich weiß aber nicht, ob es nicht auch einen besseren Datentyp gibt. Ich habe aber das Problem gehabt, dass ich es nur geschafft habe die einmal fest zu beschreiben und es nicht geschafft habe immer neue Zeile darunter zu schreiben.
Also quasi so:
Variable1 = [7;8;9;10;11];
Variable2 = [1;2;3;4;5];
Variable3 = [15;16;17;18;19];
Tabelle1= table(Variable1,Variable2,Variable3);
Zitat: |
Wie soll denn unterschieden werden, was wohin geschrieben werden soll? |
In den Namen der Dateien sind Kennzahlen enthalten und je nach Kennzahl muss dann immer eine Tabelle erzeugt und genutzt werden.
Grüße
JP
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.04.2022, 09:35
Titel:
|
|
Hallo,
Zitat: |
Ich habe aber das Problem gehabt, dass ich es nur geschafft habe die einmal fest zu beschreiben und es nicht geschafft habe immer neue Zeile darunter zu schreiben. |
Ich habe ja einen Vorschlag dazu gemacht. Wenn dir das nicht weiterhilft, bitte ganz konkret schreiben, was untereinander gehängt werden soll, wie du das genau versuchst und welches Problem dabei auftritt.
Zitat: |
In den Namen der Dateien sind Kennzahlen enthalten und je nach Kennzahl muss dann immer eine Tabelle erzeugt und genutzt werden. |
Dann würde ich die Kennzahlen extrahieren (das Wie hängt von der Struktur des Dateinamens ab) und eine entsprechende Fallunterscheidung mit if/else oder switch/case machen.
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 ;)
|
|
|
JP186 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 18.04.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.04.2022, 10:02
Titel:
|
|
Hallo,
Zitat: |
Ich habe ja einen Vorschlag dazu gemacht. |
Das stimmt, ich habe es gerade mal probiert, aber ich finde noch nicht die richtige Syntax. Wenn ich jetzt Tabelle1 in der ersten Schleife erzeuge und Tabelle2 in der zweiten Schleife erzeuge, wie hänge ich die dann untereinander?
Zitat: |
Dann würde ich die Kennzahlen extrahieren (das Wie hängt von der Struktur des Dateinamens ab) und eine entsprechende Fallunterscheidung mit if/else oder switch/case machen. |
Eine einfache Unterscheidung mit if/else könnte in dem Fall schon die Lösung sein. Vielen Dank!
Grüße
JP
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.04.2022, 10:42
Titel:
|
|
Hallo,
Zitat: |
Wenn ich jetzt Tabelle1 in der ersten Schleife erzeuge und Tabelle2 in der zweiten Schleife erzeuge, wie hänge ich die dann untereinander? |
Wie gesagt:
Die VariableNames müssen dazu übereinstimmen.
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 ;)
|
|
|
JP186 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 18.04.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.04.2022, 11:14
Titel:
|
|
Hallo,
das habe ich gerade versucht und ich habe das Gefühl, dass das bei mir nicht zielführend ist.
Ich habe jetzt schon ein Konstrukt aus Bedingungen in der Schleife gebaut und ich müsste immer pro Schleifendurchlauf drei Variablen der Tabelle hinzufügen.
Gibt es keine Möglichkeit bei der ich dann sagen kann:
TabelleX.ZeileHinzufügen(Variable1,Variable2,Variable3);
So ein Befehl würde mein Problem am einfachsten lösen.
Viele Grüße
JP
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.04.2022, 13:12
Titel:
|
|
Hallo,
das gibt es (meines Wissens) in der Form aber halt nicht. Hier werden verschiedene Wege gezeigt, Zeilen hinzuzufügen:
https://de.mathworks.com/help/matla.....nd-delete-table-rows.html
Der Ansatz mit den Tables erscheint mir weiterhin der einfachste.
Wenn du das sehr oft brauchst, kannst du dir ja eine kleine Funktion schreiben, die aus den 2-3 Zeilen eine macht.
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 ;)
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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 - 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.
|
|