MATLAB app designer button

3 次查看(过去 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?

采纳的回答

Ankit
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 个评论
Ankit
Ankit 2022-8-29
above function will break the loop as soon as you click the stop button right?
Marek
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 CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by