如何在每次迭代中进行回调更改图?

时间:2017-01-01 18:24:05

标签: matlab callback iteration

我的GUI中有4个回调,我将图像放入12个图中。每个按钮加载不同的图像。如何让我的回调改变每次迭代中的图?

function A_Callback(hObject, eventdata, handles)
axes(handles.dna1)
matlabImage = imread('a.png');
image(matlabImage)
axis off
axis image

这是我第一次回调的代码。其他是相同的(只有图像不同)。问题是我有12个图(从dna1到dna12)。在选择回调之后,我希望下一个选择应该是关于下一个情节(dna2,dna3等)。我怎么能这样做?

enter image description here

当我点击任何一个回调时,该字母的图像应该加载到第一个图中。接下来点击任何其他回调应该参考下一个第一个接下来的情节。

1 个答案:

答案 0 :(得分:1)

基本上,您需要将 next axis id 传递给您将要使用的下一个callback函数。因此,请尝试在代码中添加以下步骤:

  1. DNA_OpeningFcn中向axesid结构中添加2个新元素axesnumhandles,以便确定要选择的下一个axes:< / p>

    handles.output = hObject;
    handles.axesid = 0;
    handles.axesnum = 12;
    % Update handles structure
    guidata(hObject, handles);
    
  2. 然后,在尝试设置下一个轴时,按照以下步骤更改callbacks实施:

    handles.axesid = mod(handles.axesid, handles.axesnum) + 1;
    ax = ['dna',int2str(handles.axesid)];
    axes(handles.(ax))
    matlabImage = imread('coins.png'); % Change the input image
    image(matlabImage)
    axis off
    axis image
    guidata(hObject, handles);
    
  3. 确保您将轴命名为dna1dna12