MATLAB app designer button
조회 수: 4 (최근 30일)
이전 댓글 표시
hi, in the app designer i created a 'start' button that starts the action of a long loops, and i want to create a 'stop' button that will immidietly stop the action of the first button and not waite until it finished the loops, is that possible?
댓글 수: 0
채택된 답변
Ankit
2022년 8월 29일
편집: Ankit
2022년 8월 30일
Please find attached *.zip file where you can see one example (refer below code)
properties (Access = public)
stop_sim = false;
end
methods (Access = private)
function stopSimulation(app)
app.stop_sim = true;
msgbox('simulation stopped');
end
function startSimulation(app)
i = 0;
while i<=1000000 && app.stop_sim == false
app.display.Value = num2str(i);
pause(0);
i = i + 1;
end
end
end
function StartButtonPushed(app, event)
startSimulation(app)
end
function StopButtonPushed(app, event)
stopSimulation(app)
end
Once the user pushes the StopButtonPushed button, for which the function "stopSimulation" is a callback, then the app fetch the updated properties and the condition to app.stop_sim will be set to true and hence this allows the app to terminate the while loop before reaching 1000000 iterations.
댓글 수: 3
Marek
2025년 1월 8일
Hi, I built my program according to your example and observed behavior which I don't understand. Can you help me to understand this question?
When I put the Matlab optimization function (fmincon) inside the loop the stop button stops working. Namely, the stopSimulation function was performed AFTER the lop was finished.
By trial and error, I figured that changing pause(0) to pause(0.01) solved this problem. By trial and error, I figured that changing pause(0) to pause(0.01) solved this problem. The value of 0.005 seconds was too short. When I put 0.008 s the function made one or two additional iterations and stopped correctly. The one iteration takes 1 to 2 seconds, and I have a clear indicator of the actual stage, therefore I'm pretty sure that observation is correct.
The program works, but I would like to understand better why the value of pause time makes such a big difference.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!