|
|
Einlesen von *.mat über eine GUI |
|
Stoph |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.04.2009, 16:50
Titel: Einlesen von *.mat über eine GUI
|
 |
Hallo MATLAB-User!
Ich arbeite zur Zeit an einem Projekt, bei dem der Benutzer über eine GUI ein Verzeichnis auswählt, in dem eine bestimmte Anzahl an *.mat-files liegt. Nachdem das Verzeichnis gewählt wurde sollte der Inhalt des Verzeichnisses in einer listbox angezeigt werden. Bis dahin funktioniert es so grob... Ich habe versucht mich an einem Beispiel aus der Hilfe entlang zu hangeln (GUI Directory Reader). Die mat-files enthalten jeweils einen Vektor mit Messdaten.
Mein Problem ist nun folgendes: Wie kann ich die vom Benutzer ausgewählte mat-file und deren Daten einlesen, sodass ich den Datenvektor für andere Funktionen (wie z.B. plot oder in eine *.txt-file schreiben) verwenden kann?
Ich habe mich schon an verschiedensten Sachen mit load und save versucht, aber leider komme ich auf keinen grünen Zweig und bin so langsam aber sicher am Verzweifeln...
Danke für die Antworten.
|
|
|
|
|
steve |

Ehrenmitglied
|
 |
Beiträge: 2.029
|
 |
|
 |
Anmeldedatum: 03.09.07
|
 |
|
 |
Wohnort: Wien
|
 |
|
 |
Version: R2024a
|
 |
|
|
 |
|
Verfasst am: 27.04.2009, 18:05
Titel:
|
 |
Moin,
du kannst mit LOAD die Variablen des mat-files in ein Struct laden:
Schau auch mal in die Skripte-Ecke, dort ist ein Beispiel wie man Daten eines GUIs speichern und nach einem Neustart wieder einlesen kann - das sollte dir helfen.
Gruß
Alex
_________________
>> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
josekamara |

Forum-Meister
|
 |
Beiträge: 529
|
 |
|
 |
Anmeldedatum: 26.04.08
|
 |
|
 |
Wohnort: München
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.04.2009, 18:22
Titel:
|
 |
So können Sie aus jedem Ordner die mat-datei einlesen.
Gruß,
Jose
_________________
Simulation
Zuletzt bearbeitet von josekamara am 27.04.2009, 19:27, insgesamt einmal bearbeitet
|
|
|
steve |

Ehrenmitglied
|
 |
Beiträge: 2.029
|
 |
|
 |
Anmeldedatum: 03.09.07
|
 |
|
 |
Wohnort: Wien
|
 |
|
 |
Version: R2024a
|
 |
|
|
 |
|
Verfasst am: 27.04.2009, 19:16
Titel:
|
 |
Moin,
@Jose: Warum FILEPARTS(FULLFILE(...))? Die beiden Funktionen machen doch genau das entgegengesetzte zueinander, oder?
Das sollte eigentlich reichen.
Gruß
Alex
_________________
>> I told me to.
____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
|
|
|
josekamara |

Forum-Meister
|
 |
Beiträge: 529
|
 |
|
 |
Anmeldedatum: 26.04.08
|
 |
|
 |
Wohnort: München
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.04.2009, 19:29
Titel:
|
 |
Sorry, Alex.
_________________
Simulation
|
|
|
Stoph |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.04.2009, 11:24
Titel:
|
 |
Vielen Dank für Ihre Antworten. Aber leider bin ich noch nicht wirklich weitergekommen...
Wenn ich mit
arbeite und die in der Listbox ausgewählte .mat-file übergebe, dann erhalte ich zwar eine struct, aber ich möchte ja auf die darin befindlichen Daten zugreifen.
Der zweite Vorschlag bringt mich schon ein bischen näher. Mich wundert nur, dass sich dabei noch ein weiteres Dialogfenster öffnet und ich die entsprechende *.mat-file noch ein zweites Mal auswählen muss Eig sollte ja direkt die in der Lisbox angeklickte file übernommen werden... Als Ausgabe erhalte ich aber dann z.B.
Die Frage ist jetzt nur, wie ich auf diesen Vektor zugreifen kann? Das Problem dabei ist, dass in der Listbox gut 1000 *.mat-files liegen und je nach dem welche mat-file der Benutzer auswählt sollten die entsprechenden Parameterwerte zurückgegeben werden, so dass ich mir diese z.B. in einem anderen Vektor speichern kann.
Danke für Ihre Hilfe!
|
|
|
Maddy |

Ehrenmitglied
|
 |
Beiträge: 494
|
 |
|
 |
Anmeldedatum: 02.10.08
|
 |
|
 |
Wohnort: Greifswald
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 28.04.2009, 11:56
Titel:
|
 |
Wenn das Struct vorliegt, dann musst du doch nur noch den Variablennamen raussuchen und fertig:
z.B. für eine Variable a
_________________
>> why
The computer did it.
|
|
|
Caidence |

Forum-Anfänger
|
 |
Beiträge: 35
|
 |
|
 |
Anmeldedatum: 01.04.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.04.2010, 14:35
Titel:
|
 |
Hallo!
Soweit verstehe ich alles. Aber in meiner .mat-File befinden sich lediglich Spalten und Zeilen mit Messwerten, ohne Variablenbenennung.
Wie greife ich dann zum Beispiel auf die 10. Spalte zu (ich lasse das Ganze über eine Dateiauswahl in einer GUI laufen)?
Vielen Dank schon mal (ich werde langsam verrückt deswegen)!
|
|
|
Maddy |

Ehrenmitglied
|
 |
Beiträge: 494
|
 |
|
 |
Anmeldedatum: 02.10.08
|
 |
|
 |
Wohnort: Greifswald
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.04.2010, 17:04
Titel:
|
 |
Ich seh gerade das Problem nicht.
Könntest du mal eine Beispiel-Datei hochladen.
Wie die 10. Spalte einer Matrix aufzurufen ist sollte klar sein --> M(:,10)
_________________
>> why
The computer did it.
|
|
|
Caidence |

Forum-Anfänger
|
 |
Beiträge: 35
|
 |
|
 |
Anmeldedatum: 01.04.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2010, 09:14
Titel:
|
 |
Maddy hat Folgendes geschrieben: |
Könntest du mal eine Beispiel-Datei hochladen. |
"Die Erweiterung mat ist hier verboten" Irks? Die Dateien sind auch rieeesig. 540140 x 40 Matrix
Maddy hat Folgendes geschrieben: |
Wie die 10. Spalte einer Matrix aufzurufen ist sollte klar sein --> M(:,10) |
Ja,wie man auf Spalten zugreift ist mir bewusst. Aber wenn ich
hatte, hat es auch nie geklappt. Er sagt er kann darauf nicht zugreifen. "??? Reference to non-existent field 'daten'."
Ich bin vermutlich zu blond oder inzwischen betriebsblind
|
|
|
Zenon |

Forum-Guru
|
 |
Beiträge: 292
|
 |
|
 |
Anmeldedatum: 20.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2010, 09:17
Titel:
|
 |
Vielleicht verpeil ich was, aber müsste es nicht einfach nur:
heißen um zu funktionieren? daten ist doch keine struct...
|
|
|
Caidence |

Forum-Anfänger
|
 |
Beiträge: 35
|
 |
|
 |
Anmeldedatum: 01.04.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2010, 10:20
Titel:
|
 |
Zenon hat Folgendes geschrieben: |
Vielleicht verpeil ich was, aber müsste es nicht einfach nur:
heißen um zu funktionieren? daten ist doch keine struct... |
"??? Index exceeds matrix dimensions."
Daten ist ein struct von 1x1, in dem dann die 540104 x 40 Matrix abgelegt ist. So hatte ich es auch schon öfter versucht.
|
|
|
Zenon |

Forum-Guru
|
 |
Beiträge: 292
|
 |
|
 |
Anmeldedatum: 20.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2010, 10:30
Titel:
|
 |
Lass dir mal mittels
daten in den MATLAB workspace ausgeben (es sei denn sie sind schon da) und probier dann doch einfach mal aus welche ausgaben du erhälst, wenn Du unterschiedlich zugreifst...das mach ich wenn ich mal wieder ein Brett vorm kopf hab...
vielleicht hilft auch:
Damit könntest Du den Inhalt des struct-Feldes data zuweisen und dann mit data wie mit einer Matrix verfahren...
|
|
|
Caidence |

Forum-Anfänger
|
 |
Beiträge: 35
|
 |
|
 |
Anmeldedatum: 01.04.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2010, 10:42
Titel:
|
 |
Zenon hat Folgendes geschrieben: |
Lass dir mal mittels
|
DATEN struct 1x1 - wie erwartet.
Zitat: |
vielleicht hilft auch:
Damit könntest Du den Inhalt des struct-Feldes data zuweisen und dann mit data wie mit einer Matrix verfahren... |
"??? Cell contents reference from a non-cell array object.
Error in ==> readData3>dataread_Callback at 46
data = daten{1};"
Seufz. Aber danke, dass ihr so bemüht seid.Hier (Arbeit) will ich keinen fragen, weil ich ja sonst Blicke sehen muss, die sagen, wie wenig ich doch im Studium mitgenommen habe
|
|
|
Zenon |

Forum-Guru
|
 |
Beiträge: 292
|
 |
|
 |
Anmeldedatum: 20.01.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.04.2010, 11:03
Titel:
|
 |
Ich meinte nicht das Du dir DATEN dann nur ausgeben lassen sollst sondern alles durchprobieren, bis es sinnvoll wird z.B.
Wenn er nur 1x1 struct ohne Feldnamen ausgespuckt hat funktioniert das mit dem Punkt schon mal nicht und da {} nicht gint bleibt nur noch (1).
Irgendwo habe ich das Problem schon mal gelöst...vielleicht find ich das noch...
|
|
|
|
Gehe zu Seite 1, 2, 3 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 - 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.
|
|