|
|
GUI soll m-file ausführen |
|
fleischcracker |
Forum-Anfänger
|
|
Beiträge: 24
|
|
|
|
Anmeldedatum: 14.05.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.07.2012, 09:25
Titel: GUI soll m-file ausführen
|
|
|
|
|
Hallo Liebe community,
seit Tagen sitze ich an einigen Problemen und kann sie nicht lösen. Aus den diversen Forumbeiträgen wurde ich schlauer und konnte einige Probleme Lösuen, aber nicht alle. Hier mein Anliegen:
1) Ich habe eine GUI (prototyp) und mehrere m-files (m-filesind sind im extra Verzerzei: ('C:\Users\matlab\Documents\MATLAB\funktionen')) Nun habe ich mir in der GUI Buttons gebastelt mit dennen ich meine m-files ausführen möchte. Dabei soll das m-file mit den Workspacedaten ('base' -Workspcae) arbeiten.
Summe.m ist ein m-file zu testzwecken, ihr Inhalt ist folgender:
Variablen a und b sind im base Workspace definiert.
beim Klicken auf den Button "Messung_Starten" kommt Fehler:
..... usw-> lange Liste
Aber die Argumente a und b sind doch im Workcpace
Ich weiss nicht was ich falsch gemacht habe, bitte euch um HIlfe.
Beschreibung: |
|
Download |
Dateiname: |
prototyp.m |
Dateigröße: |
6.61 KB |
Heruntergeladen: |
394 mal |
Beschreibung: |
|
Download |
Dateiname: |
prototyp.fig |
Dateigröße: |
5.32 KB |
Heruntergeladen: |
404 mal |
Beschreibung: |
|
Download |
Dateiname: |
Summe.m |
Dateigröße: |
37 Bytes |
Heruntergeladen: |
385 mal |
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.07.2012, 09:34
Titel:
|
|
Hallo,
Du rufst eine Funktion als Skript auf --> geht nicht.
Du bist in einem Workspace und möchtest Daten aus einem anderen Workspace verwenden --> schlechte Idee, weil unübersichtlich und fehleranfällig.
Auf folgender Seite werden verschiedene Ansätze dargestellt, wie man das vernünftig lösen kann.
http://www.mathworks.com/help/techd.....ating_guis/f5-998352.html
Am besten für deinen Zweck geeignet dürften die Ansätze unter "Application Data" und "GUI Data" sein. Beispiele finden sich weiter unten.
Grüße,
Harald
|
|
|
fleischcracker |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 24
|
|
|
|
Anmeldedatum: 14.05.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.07.2012, 11:51
Titel:
|
|
Danke Harald für die Info, ich möchte es mit "GUI Data" machen.
Ich versuche den handle der variable a dem base-Workspace zu entnehmen und ihn an Callback workspace weiter zu geben. (ich hoffe, dass ich es richtig verstanden habe)
irgendwas mache ich falsch, da haufen Fehler noch vorhanden sind.
ps: ist jetzt die Funktion "Summe.m" richtig eingebunden?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.07.2012, 11:54
Titel:
|
|
Hallo,
das Problem ist aus meiner Sicht schon, dass die Daten überhaupt erst im Base Workspace gespeichert werden. Warum? Sie sollten von Anfang an z.B. in der Handles-Struktur abgelegt werden.
Befehle werden immer in dem Workspace ausgewertet, wo man sich befindet. Das Zugreifen auf den Base Workspace ist zwar über EVALIN und ähnliches möglich, aber nicht empfohlen.
Grüße,
Harald
|
|
|
fleischcracker |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 24
|
|
|
|
Anmeldedatum: 14.05.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.07.2012, 12:19
Titel:
|
|
Dass die Daten zuerst im Base Workspace gespeichert werden, hat auch seinen Grund. Lange bevor mich GUI interessiert hat, habe ich einige Funktionen geschrieben. Alle Funktionen haben natürlich mit Base Workspace gearbeitet. Es hat sich im Nachinein herausgestellt, dass diese Funktionen zur einfacheren Handhabung mit GUI-Buttons verknümpft werden sollen. Und da sind wir schon bei meinen Problemen angekommen.
Zitat: |
Sie sollten von Anfang an z.B. in der Handles-Struktur abgelegt werden. |
Gern, ich habe meine Funktion Summe.m. Wie soll ich ihr sagen, dass sie die Ergebnisse im Handle ablegen soll?
Und wie kann in den Workspace von Callbackfunktionen eingesehen werden?
Verständisfrage: Gild die Hadlestruktur für die GUI und für das Base Workspace gleichzeitig?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.07.2012, 12:37
Titel:
|
|
|
|
|
Hallo,
Zitat: |
Alle Funktionen haben natürlich mit Base Workspace gearbeitet. |
Üblicherweise: jein. Funktionen haben ihren eigenen Workspace, in dem sie arbeiten. Die Ergebnisse werden in den Workspace abgelegt, aus dem die Funktion aufgerufen wurde. Das kann der Base Workspace sein, das kann aber auch der Workspace einer Teilfunktion einer GUI sein.
Typischerweise sollte das also so aussehen:
Somit werden die Ergebnisse des Funktionsaufrufs in der Handles-Struktur abgelegt und können bei Bedarf auch wieder von dort entnommen werden.
Zitat: |
Und wie kann in den Workspace von Callbackfunktionen eingesehen werden? |
Mit dem Debugger. Haltepunkt setzen und den Button drücken, zu dem der Callback gehört.
Zitat: |
Gild die Hadlestruktur für die GUI und für das Base Workspace gleichzeitig? |
Nein, die Handles-Struktur gilt ausschließlich für die GUI, mit der du gerade arbeitest. Natürlich kannst du diese Variable handles auch an ein externes Programm weitergeben; das ist aber dann nochmal was anderes.
Grüße,
Harald
|
|
|
fleischcracker |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 24
|
|
|
|
Anmeldedatum: 14.05.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.07.2012, 13:26
Titel:
|
|
Vielen Dank Harald.
Ich glaube, dass ich etwas überfordert bin. Verstehe ich das richtig, dass meine Summe.m Funkion folgender Maßen angepasst wird:
Schöne Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.07.2012, 13:54
Titel:
|
|
Hallo,
die Funktion summe.m braucht überhaupt nicht angepasst werden, lediglich ihr Aufruf.
Grüße,
Harald
|
|
|
fleischcracker |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 24
|
|
|
|
Anmeldedatum: 14.05.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.07.2012, 14:42
Titel:
|
|
Ok Harald, vielen dank!!!
So sieht es dann bei mir im GUI-Code aus:
Schöne 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.
|
|