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

Property extern ändern während funktionsaufruf

 

Dschiehses
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 12.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.06.2014, 16:48     Titel: Property extern ändern während funktionsaufruf
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgendes Problem:

ich habe ein Objekt mit einer Methode "simulate", die in einer for-Schleife eine Simulink-Simulation aufruft. die Rückgabe der Methode ist ein Flag, ob abgebrochen wurde/es einen Fehler gab, oder nicht. Ursprünglich gab es die Möglichkeit, via cancel-Button der "multiWaitbar" aus dem FEX die Funktion zu beenden (Es wurde das flag auf false gesetzt, und dadurch die Schleife beendet).

So weit kein Problem. Aber jetzt kommt folgendes:

Ich möchte einen anderen Cancel-Button nutzen, der von einer (externen) GUI aus die Funktion beendet. Deshalb habe ich statt der (lokalen) flag-Variable eine Property Variable erstellt.

Vereinfacht gesagt:
Code:

classdef Objekt < handle

properties
  % ( ...)

  flag;
end
methods
% (...)
function flg = simulate(obj)
obj.flag = true % muss ja true sein, damit die schleife läuft
% (bla bla)

for i=1:ende
  if ~obj.flag
    break;
  end % if

  % (usw usf)

end % for

end % simulate
end % methods
end % classdef
 

Aufruf der funktion (innerhalb eines GUI-Objekts; s ist das Objekt
Code:

function startButton_callback(~, ~, obj)


f = obj.s.simulate();


end % startButton_callback

function abortButton_callback(~, ~, obj)

obj.s.flag = false;


end % abortButton_callback
 


Wenn ich nun während der for-loop läuft den Abort-Button anklicke, wird der loop leider nicht beendet. (obwohl nachweislich das flag =false gesetzt ist) ...

Vielen Dank für eure Hilfe!

Jan
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



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.