按下按钮,打开while循环? - MATLAB GUI

时间:2014-07-22 14:42:49

标签: matlab while-loop matlab-guide

我无法从动画情节中突破一段时间循环。基本上,我有一个带有两个按钮的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循环中的东西只是轨迹数据。标准的东西......

如果需要更多信息,请与我们联系。

谢谢!

1 个答案:

答案 0 :(得分:2)

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

这样的东西
function btnStopSim_Callback(hObject, eventdata, handles)\
    global flag
    flag = false;
例如,

用于按钮,其余代码用于主函数。