我在Matlab中使用了由大量嵌套函数组成的代码。大量这些函数显示progressbars
。是否有任何Matlab命令或任何可能禁用progressbars
显示,而无需查找和注释/删除调用它们的所有行?
答案 0 :(得分:2)
我从你的评论中假设你的意思是你有许多函数调用var offsetHeight = document.getElementById('divId').offsetHeight;
。
你可以用你自己的waitbar
重载'waitbar'函数,确保它在搜索路径上更高。虽然这通常不是一个好主意,并且当您(或您使用代码的任何其他人)确实想要使用等待栏时它可能会导致问题,但它不会出现。
另一种(在我看来最好)禁用它的方法是创建自己的中间函数,您可以在其中打开/关闭等待栏:
waitbar.m
这样做的缺点是你需要使用新功能'waitbar'找到并替换所有waitbar命令,但这只是一次性操作。
然后禁用以后对waitbar的所有调用:
function h = mywaitbar ( varargin )
% preallocate output
h = [];
% use an internal persistent variable
persistent active
% by default set to true
if isempty ( active ); active = true; end
% Check to see if its a control call
if nargin == 1 && ischar ( varargin{1} )
% is it a call to disable it?
if strcmp ( varargin{1}, '**disable**' )
active = false;
else
active = true;
end
return
end
if active
h = waitbar ( varargin{:} );
end
end
运行您的代码,不会显示任何等待栏。使用peristent变量将保持状态,直到重新启动Matlab(或者调用 mywaitbar ( '**disable**' )
)。要停止“全部清除”重置,您可以在函数中使用clear all
。
重新启用等候栏:
mlock
要测试它,请使用以下代码:
mywaitbar ( '**enable**' )
现在禁用等待栏功能:
for ii=1:10
h = mywaitbar ( ii );
fprintf ( 'test with waitbar %i\n', ii);
end
您将看到上面的代码在没有显示等待栏的情况下运行。