How do I stop a function?

조회 수: 6 (최근 30일)
Renato Pereira
Renato Pereira 2017년 9월 11일
댓글: Walter Roberson 2017년 9월 13일
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

채택된 답변

Walter Roberson
Walter Roberson 2017년 9월 12일
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
Renato Pereira
Renato Pereira 2017년 9월 13일
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 2017년 9월 13일
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);

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Interactive Control and Callbacks에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by