2012-01-09 13 views

Respuesta

8

Uso:

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

Usted puede también use lo que sugirió @triazotan, usando la función findobj. Sin embargo, será más lento, porque necesita revisar todos sus objetos.

Editar: he decidido ver cómo findobj funciona exactamente. Es una forma mucho más complicada de pasar por todos los objetos en get (0, 'niños')
Aquí es pequeño digerir desde el archivo que se está llamando desde findobj: Mira la orden interna ('conseguir', 0, 'ShowHiddenHandles') que es esencialmente un get (0, 'niños') en el medio:

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 

este modo, utilizando findobj es claramente una exageración.

3

no sé de ninguna manera directa, pero usted podría intentar:

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

(es decir, número de cuenta de la figura maneja devuelto por findobj)

Cuestiones relacionadas