2013-06-23 22 views
0

我很喜歡imshow在OpenCV中的行爲:如果您要求在窗口中顯示具有給定名稱的圖像,並且該名稱存在,那麼它會重新繪製此窗口,如果此命名窗口尚不存在,則會創建它。如何通過字符串或變量在Matlab中識別圖形或子圖?

是否可以使用Matlab中的圖形來模擬此行爲?

如果我寫

if ishandle(spectrum) 
    figure(spectrum); 
else 
    spectrum = figure(); 
end 

我得到一個錯誤,如果頻譜變量不是在第一次定義。

回答

1

您可以檢查光譜變量檢查它是否是一個句柄之前存在:

if exist('spectrum', 'var') && ishandle(spectrum) 
    figure(spectrum); 
else 
    spectrum = figure(); 
end 

或者說,以往分配頻譜的數字,就可以把它分配給一個虛擬值(例如楠) 。因此,當它到達if分支時,它已經具有一個值並且Matlab不會拋出錯誤:

spectrum = nan; 

% ... stuff happens, maybe even a while or for loop ... 

if ishandle(spectrum) 
    figure(spectrum); 
else 
    spectrum = figure(); 
end 
相關問題