我一直认为,在MATLAB中,使用X
或{时,HandleVisibility
的属性on
设置为findobj(h)
以外的任何内容都不会显示的图形句柄get(h, 'Children')
{1}} h
是X
的父级。但是,这似乎只适用于Windows而不是Linux。我在Debian 6.0.6(squeeze)和Windows 7上使用MATLAB R2011b。如果我在Windows下运行以下代码:
figure;plot(randn(1,1000));
h = get(gcf, 'Children');
然后我在h
中得到一个句柄,它对应于包含我的随机图的轴。这就是我所期待的。但是,如果我在Linux中运行完全相同的代码,h
包含一个包含10个句柄的数组。实际上,大多数这些句柄只是UI元素,其HandleVisibility
属性设置为off
。例如:
get(h(end), 'Type') % returns: 'uitoolbar'
get(h(end), 'HandleVisibility') % returns 'off'
这种明显不一致的行为是否有原因?其他人可以复制吗?如果它可能是相关的,我使用的Debian服务器运行Sun JAVA 1.6.0_26,这不是Debian(openJDK)的默认设置。
答案 0 :(得分:1)
我无法使用Sun JAVA在r2011a或r2012b上重现。
一种解决方法可能是根据可见性进行过滤:
visibleChildren = findobj(get(h,'children'),'HandleVisibility','on')
听起来像是您安装的特定内容。