Использование:
numel(get(0,'Children'));
Вы также можете использовать то, что предлагает @triazotan, используя функцию findobj . Однако это будет медленнее, потому что вам нужно пройти через все ваши объекты.
Edit:
Я решил посмотреть, как работает 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 явно является излишним.