我喜欢imshow
在OpenCV中的行为:如果你要求在具有给定名称的窗口中显示图像,并且该名称存在,那么它会重绘此窗口,如果此命名窗口尚不存在,那么它创造它。
是否可以使用Matlab中的数字模拟此行为?
如果我写
if ishandle(spectrum)
figure(spectrum);
else
spectrum = figure();
end
如果第一次没有定义频谱变量,我会收到错误。
答案 0 :(得分:1)
在检查频谱变量是否为句柄之前,您可以检查它是否存在:
if exist('spectrum', 'var') && ishandle(spectrum)
figure(spectrum);
else
spectrum = figure();
end
或者,在将光谱分配给图形手柄之前,您可以将其分配给虚拟值(例如,nan)。因此,当它到达 if 分支时,它已经有一个值,Matlab不会抛出错误:
spectrum = nan;
% ... stuff happens, maybe even a while or for loop ...
if ishandle(spectrum)
figure(spectrum);
else
spectrum = figure();
end