如何找出目前有多少数字?

时间:2012-01-09 14:37:59

标签: user-interface matlab matlab-figure

有没有办法知道在matlab中打开了多少个数字?

2 个答案:

答案 0 :(得分:8)

使用:

numel(get(0,'Children'));

您还可以使用 findobj 功能使用@triazotan建议的内容。但是它会慢一点,因为你需要浏览所有对象。

修改 我决定看看 findobj 的确切运作方式。在 get(0,'Children')中查看所有对象的复杂方法要复杂得多 以下是从 findobj 调用的文件中的小摘要: 查看内置('get',0,'ShowHiddenHandles'),其中间基本上是 get(0,'Children')

function h = findobjhelper( varargin )

%Copyright 2009-2010 The MathWorks, Inc.

allowHVHandles = true;

nin = nargin;
rootHandleVis = builtin( 'get', 0, 'ShowHiddenHandles' );

% See if 'flat' keyword is present 
hasflat = false;
if (nin > 1) 
    if strcmp( varargin{2}, 'flat' ) % Does the 'flat' keyword exist
        hasflat = true;
    end
end

if nin == 0
    if feature('HgUsingMatlabClasses')
        h = findobjinternal( 0, '-function', @findobjfilter );  
    else
        h = findobjinternal(0);
    end

因此,使用 findobj 显然是一种矫枉过正的行为。

答案 1 :(得分:3)

我不知道任何直接的方式,但你可以尝试:

length(findobj('Type','figure'))

(即计算findobj返回的图形句柄的数量)