How to pause running program from GUI and assign new variable value?
1 次查看(过去 30 天)
显示 更早的评论
for example I have simple program
for x=1:1000;
y=a*x+b*x^2;
end
I want to stop at any number of x and assign new values for a and b. How can I do it from GUI?
regard
Ali
0 个评论
采纳的回答
Walter Roberson
2012-11-29
You cannot pause a running program. The closest you can get is to put in a breakpoint or a conditional breakpoint before you start running the program.
But possibly you meant something else by "from GUI"; above I was answering about the MATLAB interface to run and debug programs.
If you are constructing a GUI that is starting a routine in a callback, then there is no mechanism in MATLAB to force that routine to pause when the user clicks something (or uses the keyboard.) It is possible, however, to write the routine so that it asks whether the user would like it to pause, or so that it notices that the user has changed values in a user interface and use the new values. To do this, the routine needs to use drawnow() to give the user interface an opportunity to do pending actions, and the routine needs to get() values from the handles in order to receive the updated values. For example,
for x = 1 : 1000
drawnow()
a = str2double(get(handles.editbox_a, 'String'));
b = str2double(get(handles.editbox_b, 'String'));
y(x) = a * x + b * x^2;
end
3 个评论
Walter Roberson
2012-11-29
handles.pausebutton = uicontrol('Style', 'radio', 'Value', 0);
for x = 1 : 1000
drawnow()
needpause = get(handles.pausebutton, 'Value');
if needpause
a = input('new a?');
b = input('new b?');
set(handles.pausebutton, 'Value', 0)
end
y(x) = a * x + b * x^2;
end
更多回答(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!