|
|
Wert einer Variablen über Pushbutton ändern |
|
Slamdunker23 |
Forum-Century
|
|
Beiträge: 101
|
|
|
|
Anmeldedatum: 03.11.09
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 19.06.2015, 10:25
Titel: Wert einer Variablen über Pushbutton ändern
|
|
Hallo zusammen.
Ich starte ein Skript über einen Pushbutton. Es werden dauerhaft Werte eingelesen, solange bis ich Pushbutton2 drücke.
Das funktioniert alles wunderbar.
Nun möchte ich wenn ich den Pushbutton drücke eine Variable anlegen und den Wert der Variablen beim Drücken des Pushbutton2 ändern.
Das funktioniert bis jetzt so:
Im zweiten Pushbutton habe ich folgendes programmiert:
Das funktioniert auch soweit. Wenn ich das Skript im Pushbutton2 debugge, dann wird der Wert tatsächlich geändert. Perfekt!
Nachdem das Skript des Pushbutton2 beendet ist, springt es wieder in das Skript von Pushbutton1 und liest die Handles ein.
Nun ist die Änderung des Wertes aber nicht mehr da.
Was mache ich falsch?
Vielen Dank für eure Hilfe.
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.06.2015, 10:32
Titel:
|
|
Hallo,
füge doch noch ein
nach dem guidata-Befehl ein.
Falls das nicht hilft, bitte ein reproduzierbares Beispiel zur Verfügung stellen.
Grüße,
Harald
|
|
|
Slamdunker23 |
Themenstarter
Forum-Century
|
|
Beiträge: 101
|
|
|
|
Anmeldedatum: 03.11.09
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 22.06.2015, 08:11
Titel:
|
|
Guten Morgen.
Ich habe exemplarisch eine GUI erstellt.
Diese enthält drei Buttons: Start, Stop und Stop und Exit.
Mit Start wird eine Variable mit der Frequenz 0,5 Hz hochgezählt. Mit Stop wird die Aktion beendet.
Mit Stop und Exit möchte ich eine Flag setzen, die mir das Fenster schließt.
Genau dieses Setzen der Flag_Exit = true wird nicht übernommen.
Vielen Dank für eure Hilfe.
Herzlicher Gruß!
Beschreibung: |
|
Download |
Dateiname: |
GUI_Beispiel.fig |
Dateigröße: |
4.33 KB |
Heruntergeladen: |
384 mal |
Beschreibung: |
|
Download |
Dateiname: |
GUI_Beispiel.m |
Dateigröße: |
4.11 KB |
Heruntergeladen: |
361 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.06.2015, 14:19
Titel:
|
|
Hallo,
das Problem ist, dass sich die Informationen während der Ausführung des Callbacks ändern, ohne dass der Callback des Start-Buttons das mitbekommt. handles ist dort ja eine lokale Variable.
Abhilfe:
Vor der if-Abfrage folgende Zeile einfügen:
Das drawnow ist nicht mal nötig, da pause auch aktualisiert.
(Du brauchst also im echten Code pause oder drawnow)
Grüße,
Harald
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 23.06.2015, 11:39
Titel: Re: Wert einer Variablen über Pushbutton ändern
|
|
Hallo Slamdunker23,
Das Problem wurde bereits erklärt. Hier noch mal mit anderen Worten:
Nach dieser Zeile hat der "handles"-Struct den Wert, den er bei der Erstellung des Callbacks hatte. Die zwischenzeitlichen Änderungen an diesem Struct werden nicht im Nachhinein in den Callback-Aufruf hinein kopiert. Deshalb braucht man noch die aktuelle Version dieses Structs:
An dieser Stelle wird offensichtlich, dass "handles" im Aufruf eigentlich gar nicht benötigt wird und nur in die Irre führt. Wieso GUIDE dies trotzdem automatisch überall einfügt bleibt mir ein Rätsel. Ich halte das für eine ernste Fehl-Entscheidung, die zu sehr vielen Nachfragen in Matlab-Foren führt.
Gruß, Jan
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 23.06.2015, 17:40
Titel:
|
|
|
|
Slamdunker23 |
Themenstarter
Forum-Century
|
|
Beiträge: 101
|
|
|
|
Anmeldedatum: 03.11.09
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 25.06.2015, 08:25
Titel:
|
|
Vielen Dank euch beiden.
Der Code funktioniert natürlich jetzt!
Und was noch viel wichtiger ist: Ich habe es verstanden.
Vielen Dank und herzlicher Gruß!
|
|
|
|
|
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.
|
|