uicontrol回调的输入参数太多



我正在尝试编写一个滚动条,同时更改许多子图的x范围。

kids = get(gcf,'Children');
 h=uicontrol('style','slider',...
'units','normalized','position',Newpos,...
'callback',{@slide_axes,kids},'min',0,'max',xmax-chunkDuration);

Update_axes在同一个文件中定义:

function slide_axes(h)
 set(h,'xlim',get(gcbo,'value')+[0 20000]); 

结束

但是,我得到错误:

??? Error using plot_scroll>slide_axes
Too many input arguments.
??? Error while evaluating uicontrol Callback

我在FEX上看到回调函数可以传递两个参数给任何回调函数。但是,当我将slide_axes的签名更改为slide_axes(h,evt)时,错误仍然存在。

您传递的参数(hevt)是MATLAB默认值。如果你想传递额外的参数给你的回调函数,你需要把它们写在hevt之后。这样的:

function slide_axes(h, evt, k)
    % k is kids.
end

最新更新