使用:
numel(get(0,'Children'));
Run Code Online (Sandbox Code Playgroud)
您还可以使用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
Run Code Online (Sandbox Code Playgroud)
因此,使用findobj显然是一种矫枉过正.