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

Ordner mit Simulationsdateien durchsuchen und Werte speicher

 

JP186
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 18.04.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2022, 11:16     Titel: Ordner mit Simulationsdateien durchsuchen und Werte speicher
  Antworten mit Zitat      
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 Smile
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.427
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.04.2022, 14:30     Titel:
  Antworten mit Zitat      
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:

Code:
list = dir("*.txt");
for k = 1:length(list)
   currentFile = list(k).name;

   % Verarbeiten von currentFile
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
 
JP186
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 18.04.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2022, 16:23     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.427
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.04.2022, 16:30     Titel:
  Antworten mit Zitat      
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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
JP186
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 18.04.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2022, 16:41     Titel:
  Antworten mit Zitat      
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 Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.427
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.04.2022, 19:54     Titel:
  Antworten mit Zitat      
Hallo,

dann kannst du die Variablen mit load laden und dann "wie immer" damit arbeiten.
Code:
load(currentFile)


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 18.04.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2022, 20:26     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.427
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.04.2022, 21:28     Titel:
  Antworten mit Zitat      
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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.427
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.04.2022, 21:29     Titel:
  Antworten mit Zitat      
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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
JP186
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 18.04.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2022, 09:14     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.427
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.04.2022, 09:35     Titel:
  Antworten mit Zitat      
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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
JP186
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 18.04.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2022, 10:02     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.427
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.04.2022, 10:42     Titel:
  Antworten mit Zitat      
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:
Code:
Tabelle3 = [Tabelle1; Tabelle2];

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
JP186
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 18.04.22
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2022, 11:14     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.427
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.04.2022, 13:12     Titel:
  Antworten mit Zitat      
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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.