How do I stop a function?

6 views (last 30 days)
Renato Pereira
Renato Pereira on 11 Sep 2017
Commented: Walter Roberson on 13 Sep 2017
I have a function running when I push a button in a GUI. I want to end this function when I press another button. example:
function first_callback (hObject, eventdata, handles)
a = b + c
while...
...
...
...
end
end
function stopbuttonback_callback (hObject, eventdata, handles)
%something that stops function first_callback
end

Accepted Answer

Walter Roberson
Walter Roberson on 12 Sep 2017
function first_callback (hObject, eventdata, handles)
a = b + c
set(handles.stopbutton, 'UserData', false);
while true
drawnow();
if get(stopbutton, 'UserData'); break; end
...
...
...
end
end
function stopbuttonback_callback (hObject, eventdata, handles)
set(hObject, 'UserData', true);
end
  3 Comments
Renato Pereira
Renato Pereira on 13 Sep 2017
Dont know why but when I write the "while true" the function stopbuttonback_callback doesn't work... let me give you the all code:
function start_Callback(hObject, eventdata, handles)
a = 0;
while a < 100
b = datestr(a/(24*60*60),'HH:MM:SS');
set(handles.time,'String',b);
a = a + 1;
pause(1)
end
function stop_Callback(hObject, eventdata, handles)
set(handles.time,'String','00:00:00');
Walter Roberson
Walter Roberson on 13 Sep 2017
function start_Callback(hObject, eventdata, handles)
a = 0;
set(handles.stop, 'UserData', false);
while a < 100
pause(1); %pause works as well as drawnow() to allow interrupts
if get(handles.stop, 'UserData'); break; end
b = datestr(a/(24*60*60),'HH:MM:SS');
set(handles.time,'String',b);
a = a + 1;
end
function stop_Callback(hObject, eventdata, handles)
set(handles.time,'String','00:00:00');
set(hObject, 'UserData', true);

Sign in to comment.

More Answers (0)

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!