2012-01-09 3 views

答えて

8

使用(図のすなわちカウント数がfindobjで返されるハンドル)また、@ toriazotanが提案したものを使用して、findobj機能を使用してください。しかし、あなたはすべてのオブジェクトを通過する必要があるので、それは遅くなります。

編集:私はfindobjをが正確にどのように動作するかを見ることにしました 。 ( 組み込みをチェックアウト:それはここで
が小さいfindobjをから呼び出されているファイルからダイジェストのget(0、「子供」)内のオブジェクトのすべてを通過するのはるかに複雑な方法であります基本的にGET(0である)0、 'ShowHiddenHandles'、 'を取得'、 '子供')途中でfindobjをは明らかに行き過ぎで使用してこのように

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 

、。

3

は、私がどんな直接的な方法を知りませんが、あなたは試みることができる:

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

あなたがすることができます

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

関連する問題