MATLAB:不可见的图形句柄在Windows和Linux上表现不同?

时间:2012-11-04 14:29:26

标签: matlab matlab-figure

我一直认为,在MATLAB中,使用X或{时,HandleVisibility的属性on设置为findobj(h)以外的任何内容都不会显示的图形句柄get(h, 'Children') {1}} hX的父级。但是,这似乎只适用于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)的默认设置。

1 个答案:

答案 0 :(得分:1)

我无法使用Sun JAVA在r2011a或r2012b上重现。

一种解决方法可能是根据可见性进行过滤:

visibleChildren = findobj(get(h,'children'),'HandleVisibility','on')

听起来像是您安装的特定内容。