Verfasst am: 14.12.2012, 19:53
Titel: load aus GUI
Hallo zusammen,
habe schon im Inet und im Forum gesucht aber leider keine passende Antwort gefunden...
Ich möchte aus einer GUI (bei Knopfdruck) ein *.m Skript ausführen. Das Skript wird auch, bis auf die darin verwendeten "load" Befehle ausgeführt. (Workspace bleibt leer.)
Führe ich das entsprechende Skript jedoch über das Command Window aus werden die Daten in das Workspace geladen.
In der GUI rufe ich das Skript folgendermaßen auf:
Code:
function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
Das hängt glaube ich mit dem "quasi lokalen" Workspace deiner gui zusammen.
Vermutlich muss in die Outputfunction was geschrieben werden, dass die Daten in den Workspace schreibt/übernimmt. Aber dazu müsste dir einer der Experten was sagen... keine Ahnung wie das genau geht.
wie schon vom Vorgänger vermutet: jeder Callback hat erstmal seinen eigenen Workspace. Was soll denn mit den geladenen Daten gemacht werden? Sollen sie anderen Callbacks zur Verfügung stehen?
Zum generellen Umgang mit Daten in GUIs siehe
http://www.mathworks.de/de/help/mat.....-data-in-a-guide-gui.html
werde mir deinen link jetzt mal ansehen.
aber vorab schon mal die frage: kann man die Daten in ein "globalen" workspace laden?
die gui soll mit klick auf den Knopf beendet sein.
es sollen die Datenbanken in den workspace geladen werden, dann laufen weitere skripte durch. Variablen werden den Werten in der Datenbank zuordnen und dann folgt eine Simulink simulation (mit Werten aus den zu ladenen Datenbanken)
Entschuldige bitte die schlechte Ausdrucksweise, ich bin (ein mit Matlab noch recht unerfahrener) Ingenieur, kein Informatiker
Okay, ich versuche es noch mal verständlicher auszudrücken:
Es besteht bereits ein "Programm" das aus mehreren GUIs besteht, in denen Verschiedene Werte eingegeben, oder ausgewählt werden können. Anhand dieser Auswahlen werden (teilweise schon in der GUI) Variablen Werte zu geordnet. --> Konzept.mat
Im Anschluss an die GUI möchte ich eine Simulation durchführen.
Diese benötigt Inititialisierungswerte. Die Werte kommen teilweise aus der GUI (Konzept.mat), teilweise aus einer anderen mat-Datei (Zyklen.mat)
Die Idee war: mit Betätigen des Knopfes wird über
sim 'mdl' die Simulation gestartet. Diese hat als Preloadfunktion eine m.Datei welche mittels load die beiden mat Dateien in den standard Workspace läd. Dann wird ein Skript aufgerufen mit dem die Simulations Variablen Werte zugeordnet bekommen.
Doch daran scheitert es bisher, die Daten aus den Ordnern werden nicht geladen. Und das Skript für die Initialisierung kann nur die Daten aus dem Workspace den Variablen zuordnen.
Auch wenn es jetzt nicht die schönste Lösung ist, am einfachsten wäre es für mich, wenn ich die beiden mat-Dateien aus der GUI in den standard Workspace laden kann.
läuft die Simulation jetzt schon mal durch! - Besten Dank dafür!
Jetzt steh ich allerdings vor der nächsten Hürde.
Nach Ende der Sim steht im Command Window meine Ergebnisdateien:
Simulink.SimulationOutput:
Daten 1:
Daten 2:
...
Use get to access a variable by name.
Ich bekomme es jedoch nicht hin zugriff auf diese zu bekommen.
Habe schon versucht als postskript save simdata.mat laufen zu lassen. In der Mat Datei werden mir auch alle Daten gespeichert, mit Ausnahme der Ergebnisse (also Daten 1, 2,... sind nicht in der Datei)
und
get Daten1, oder get Simulink.Daten 1 oder get Simulink.SimulationOutput.Daten 1 klappt leider auch nicht.
klappt es. So, jetzt mal sehen, wie ich dann mit dem Anschlussskript weiter mache...
wünsch dir noch ein schönes Wochenende,
Gruß, Kai
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
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.