Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 如何确定当前打开了多少个数字?_User Interface_Matlab_Matlab Figure - Fatal编程技术网

User interface 如何确定当前打开了多少个数字?

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调用的文件的小摘要: 查看内置(

有没有办法知道matlab中打开了多少个图形?

我不知道任何直接的方法,但您可以尝试:

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显然是一种过度使用