how to interrupt a while loop??

in GUI, I try to interrupt a while loop...let's say.. a program initiate while loop when button A are pushed, and i want to stop/interupt the loop by pushing button B.. any idea????

 Respuesta aceptada

Walter Roberson
Walter Roberson el 6 de Jun. de 2012

3 votos

You cannot do that.
The closest you can get is to have button B set a variable in a place that the code in button A can reach, with that code checking the value periodically. For example,
Button B:
set(handles.buttonA, 'UserData', 'stop');
Button A:
set(handles.buttonA, 'Userdata', []);
while ....
curval = get(handles.buttonA, 'UserData');
if ~isempty(curval) && strcmp(curval, 'stop')
break;
end
....
end

4 comentarios

IPSAS
IPSAS el 6 de Jun. de 2012
it can work whith the programmatically GUI?
Steven
Steven el 13 de Abr. de 2013
Thank you so much Walter! I've been looking for a way to stop the loop for the whole day.
Image Analyst
Image Analyst el 13 de Abr. de 2013
Walter might want to add this to the FAQ. It's useful and asked fairly often, but I don't think it's on there yet. By the way, you can also do it with a checkbox. Button A makes the "Finish Now" checkbox become visible and clears it. When the user checks the box, the loop will "break" because it gets the checkbox value and checks to see if it's checked.
Danilo Teran
Danilo Teran el 10 de Mayo de 2017
Hi I did your suggestion, but I can never stop routine on Pushbutton A. Shall I do something extra in PushburronB

Iniciar sesión para comentar.

Más respuestas (1)

Geoff
Geoff el 6 de Jun. de 2012

0 votos

In your GUI, set some user data to your GUI handle.
In your loop, check this data and break accordingly.

Categorías

Más información sobre Interactive Control and Callbacks en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 6 de Jun. de 2012

Comentada:

el 10 de Mayo de 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by