我试图创建一个滑动窗口(带滑块)来查看多个子图,每个子图都是一个很长的时间序列。
S=['set(gca,''xlim'',get(gcbo,''value'')+[0 ' num2str(chunkDuration) '])'];
h=uicontrol('style','slider','units','normalized','position',Newpos,...
'callback',S,'min',0,'max',xmax-chunkDuration);
如上所述,这只会导致底部情节移动。我理解这是因为我设置了gca
。但是,将gcf
更改为gca
会有所帮助,因为这会尝试设置数字的xlim
而不是其子代。
当我尝试
时 kids = get(gcf,'Children')
S=['set(kids,''xlim'',get(gcbo,''value'')+[0 ' num2str(chunkDuration) '])'];
我收到错误:
??? Undefined function or variable 'kids'.
??? Error while evaluating uicontrol Callback
那么,为什么不进行上述工作呢?
即使在实质性change in approach之后,问题仍然存在。
答案 0 :(得分:1)
在代码中的某处,您尝试使用名为subplot_handles
的变量。出现错误是因为在您尝试使用此变量时未定义此变量。
是否有理由将set
命令保存为String
?我怀疑它完全不需要。
创建子图时,尝试将手柄存储到子图对象创建的轴上。
ax(1) = subplot(311);
ax(2) = subplot(312);
ax(3) = subplot(313);
稍后,您可以使用以下方式设置所有subplot
的限制:
set(ax, 'XLim', get(gcbo,'value') + [0 num2str(chunkDuration)] );