YYC*_*YYC 36 matlab axes figure
如何获得图形手柄中的所有轴手柄?
给定数字句柄hf,我发现get(hf, 'children')可能会返回所有轴的句柄.但是,Matlab帮助建议它可能返回的不仅仅是轴句柄:
这个数字的孩子.包含所有轴的手柄的矢量,图中显示的用户界面对象.您可以更改手柄的顺序,从而更改显示屏上对象的堆叠.
有没有办法只获得图形手柄中的轴柄?或者我怎么知道返回的get(hf, 'children')句柄是否是一个斧柄?
谢谢!
Jon*_*nas 40
使用FINDALL:
allAxesInFigure = findall(figureHandle,'type','axes');
Run Code Online (Sandbox Code Playgroud)
如果您想在Matlab中的任何位置获取所有轴控制柄,您可以执行以下操作:
allAxes = findall(0,'type','axes');
Run Code Online (Sandbox Code Playgroud)
编辑
要回答问题的第二部分:您可以通过获取handles type属性来测试句柄列表是否为轴:
isAxes = strcmp('axes',get(listOfHandles,'type'));
Run Code Online (Sandbox Code Playgroud)
isAxes对于每个类型的句柄都是如此axes.
EDIT2
要仅选择非图例的轴手柄,您需要清除轴列表(ax通过删除标签不是的所有手柄'legend'或手柄'Colorbar':
axNoLegendsOrColorbars= ax(~ismember(get(ax,'Tag'),{'legend','Colobar'}))
Run Code Online (Sandbox Code Playgroud)