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

Stop Button for-Schleife

 

andi_mm

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.05.2011, 17:21     Titel: Stop Button for-Schleife
  Antworten mit Zitat      
hallo,
ich stelle mit Hilfe einer for-Schleife eine Art simulation dar und es klappt alles supper. dann habe ich noch ein "Stop" -button eingebaut um diese schlefe zu stoppen. leider funktionierts nicht Sad , hoffe mir kann einer helfen!

For-Schleife:
Code:
handles.StopButton = 0;
for Stelle=Stelle:handles.metricdata.SchrittEingabe:1000;%DT_ind_max;
   
    ZA=handles.DataMatrix(Stelle,1:12);
    %figure(6);
    %Graphische Darstellung
    [XI,YI]=meshgrid([0:25:1200],[0:25:1500]);
    ZI=griddata(handles.XA,handles.YA,ZA,XI,YI);
    contour3(XI,YI,ZI);
    surf(XI,YI,ZI);
    caxis([19 21])
    shading interp;
    colorbar

    az=0;
    el=90;
    view(az,el);

    pause (0.5);  %Zeitintervall
    %Abbruchdrawnow;
    drawnow;
    if handles.StopButton == 1
        handles.StopButton = 0;
        break
    end
   
end

und der Stopp-Button:
Code:
function StopButton_Callback(hObject, eventdata, handles)
% hObject    handle to StopButton (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 StopButton =  1;
handles.StopButton=StopButton;
guidata(hObject,handles)


Micha85

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.05.2011, 07:52     Titel:
  Antworten mit Zitat      
Hi,

ich hatte mal ein ähnliches Problem.
Folgender Link hat mir damals weiter geholfen:
http://blinkdagger.com/matlab/matla.....-a-long-running-function/
Aus irgendeinem Grund soll man wohl die Stop-Bedingung in das Feld "UserData" eintragen. Schau Dir mal das Beispiel an, bei mir hats funktioniert.

Grüße
Micha
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 03.05.2011, 16:18     Titel: Re: Stop Button for-Schleife
  Antworten mit Zitat      
Hallo andi_mm,

"Es funktioniert nicht" ist immer eine recht vage Beschreibung, so dass ich raten muss, wo denn eigentlich das Problem liegt.

Ich nehme an, das Programm macht zwar im Callback des Button ein Update des "handles" Structs per GUIDATA, aber im Hautpprogramm wird noch mit dem alten "handles" gearbeitet. Also einfach dort auch ein Update einfügen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
andi_mm

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.05.2011, 18:15     Titel:
  Antworten mit Zitat      
Micha85, vielen Dank! jetzt läuft alles! habe zwar eine if-Schleife in die For-Schleife eingebaut, aber es lag wirklich daran, dass man es in die UserData einbauen muss!!! Smile Smile Smile Smile
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 03.05.2011, 21:48     Titel:
  Antworten mit Zitat      
Hallo andi_mm,

Sehr gut. Oder diese Zeile in Deinen Code einfügen:
Code:
handles = guidata(gcf);  % <---
if handles.StopButton == 1
   ...

Gruß, 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 - 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.