在Matlab中从GUI切换for循环的索引

时间:2014-05-14 09:27:25

标签: matlab user-interface

我想用两个按钮创建一个GUI。一个代表下一个,另一个代表回来。这两个按钮应该切换for循环的索引。例如,当我按下下一个按钮时,它应该转到下一个迭代(i + 1),然后按回去,它转到(i-1)..我真的很感激任何答案。

1 个答案:

答案 0 :(得分:0)

您将无法从GUI更改循环索引。 更好的方法是使用while循环,等待其中一个按钮并从图中获取新索引:

hFig = figure(..) % create your figure somewhere here
setappdata(hFig, 'loopIndex', 0); % assuming you start at 0
while 1:
    uiwait(hFig); % this will wait for anyone to call uiresume(hFig)
    loopIndex = getappdata(hFig, 'loopIndex');
    % do whatever you're doing with the index
    % ...
    % ...
    % stop loop at some point:
    if <end-condition>: % pseudo-code, obviously
        break 

按钮回调如下:

function button_callback(hObject, evt, handles):
    hFig = ancestor(hObject, 'figure');
    % increment the loop index:
    setappdata(hFig, 'loopIndex', 1+getappdata(hFig, 'loopIndex'))
    % proceed with the loop code
    uiresume(hFig);