【问题标题】:On button press, break out of while loop? - MATLAB GUI按下按钮时,退出while循环? - MATLAB图形用户界面
【发布时间】:2014-07-22 23:00:36
【问题描述】:

我无法从动画情节中跳出 while 循环。本质上,我有一个带有两个按钮的 MATLAB GUI。一键启动动画情节。另一个按钮停止动画情节。但是,按下停止按钮并不会跳出 while 循环;它继续绘制。有什么我想念的,或者这根本不是要走的路吗?

% Infinite Loop
i = 1;
flag = true;

% My attempt at breaking out of the while loop. ----------------------
if get(handles.btnStopSim, 'Value') == 1
    flag = false;
end
%---------------------------------------------------------------------

while flag
     % Update Point 
     set(hLine, 'XData', xInit(1, i), 'YData', yInit(1, i)) 
     set(hLine2, 'XData', xInit(2, i), 'YData', yInit(2, i))
     set(hLine3, 'XData', xInit(3, i), 'YData', yInit(3, i))
     set(hLine4, 'XData', xInit(4, i), 'YData', yInit(4, i))
     set(hLine5, 'XData', xInit(5, i), 'YData', yInit(5, i))
     set(hLine6, 'XData', xInit(6, i), 'YData', yInit(6, i))
     set(hLineTarget, 'XData', Target(1), 'YData', Target(2))

     drawnow

     pause(delay)
     i = rem(i + 1, numPoints) + 1;
     if ~ishandle(hLine), break;
     end
     if ~ishandle(hLine2), break;
     end
     if ~ishandle(hLine3), break;
     end
     if ~ishandle(hLine4), break;
     end
     if ~ishandle(hLine5), break;
     end
     if ~ishandle(hLine6), break;
     end
end

while 循环中的内容只是轨迹数据。标准的东西...

如果需要更多信息,请告诉我。

谢谢!

【问题讨论】:

    标签: matlab while-loop matlab-guide


    【解决方案1】:

    这是顺序的。如果要退出 while 循环,则应检查/更改按钮回调中的标志。当然,将flag 定义为全局,以便从两个函数中访问。

    类似

    function btnStopSim_Callback(hObject, eventdata, handles)\
        global flag
        flag = false;
    

    例如按钮,以及 main 函数中的其余代码。

    【讨论】:

    • 是的!太感谢了!我已经工作了几个小时了!
    猜你喜欢
    • 1970-01-01
    • 2011-11-07
    • 2022-01-25
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多