我喜欢imshow
OpenCV 中的行为方式:如果您要求在窗口中显示具有给定名称的图像,并且该名称存在,则它会重绘该窗口,如果该命名窗口尚不存在,则创建它。
是否可以用 Matlab 中的数字来模拟这种行为?
如果我写
if ishandle(spectrum)
figure(spectrum);
else
spectrum = figure();
end
如果第一次未定义频谱变量,我会收到错误消息。
我喜欢imshow
OpenCV 中的行为方式:如果您要求在窗口中显示具有给定名称的图像,并且该名称存在,则它会重绘该窗口,如果该命名窗口尚不存在,则创建它。
是否可以用 Matlab 中的数字来模拟这种行为?
如果我写
if ishandle(spectrum)
figure(spectrum);
else
spectrum = figure();
end
如果第一次未定义频谱变量,我会收到错误消息。
您可以在检查它是否是句柄之前检查频谱变量是否存在:
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