User interface 如何确定当前打开了多少个数字?
有没有办法知道matlab中打开了多少个图形?我不知道任何直接的方法,但您可以尝试:User interface 如何确定当前打开了多少个数字?,user-interface,matlab,matlab-figure,User Interface,Matlab,Matlab Figure,有没有办法知道matlab中打开了多少个图形?我不知道任何直接的方法,但您可以尝试: length(findobj('Type','figure')) (即计数由findobj返回的图形句柄数)使用: numel(get(0,'Children')); 您还可以使用@triazotan建议的,使用findobj功能。但是速度会慢一些,因为您需要遍历所有对象 编辑: 我决定看看findobj的工作原理。在get(0,'Children') 下面是从findobj调用的文件的小摘要: 查看内置(
length(findobj('Type','figure'))
(即计数由findobj
返回的图形句柄数)使用:
numel(get(0,'Children'));
您还可以使用@triazotan建议的,使用findobj功能。但是速度会慢一些,因为您需要遍历所有对象
编辑:
我决定看看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显然是一种过度使用