2011-03-28 70 views
2

我是Matlab新手。我正在通過Matlab文檔學習。在這些時刻,我正在做示例"A GUI to Set Simulink Model Parameters"。 在「關閉GUI」中提到的一個部分,它出現了Close按鈕回調下面的代碼:什麼是Matlab的有效句柄?

function CloseButton_Callback(hObject, eventdata, handles) 
% Close the GUI and any plot window that is open 
if isfield(handles,'PlotFigure') && ... 
     ishandle(handles.PlotFigure), 
    close(handles.PlotFigure); 
end 
close(handles.F14ControllerEditor); 

我想了解一個有效的句柄是通過解析的0​​手柄的行爲是什麼handles.PlotFigure。我在上面的四行代碼中插入了一個斷點行號 ,並且我在調試模式下運行了該程序。做完這些之後,我的結論是:
- 一個有效的句柄(在這種情況下,句柄圖形對象叫做handles.PlotFigure)是一個沒有被某個命令刪除(關閉)的對象。

但是,我不明白爲什麼句柄字段handles.PlotFigure保持在句柄結構中,並且它尚未被刪除。 我在調試時發現的另一個驚喜是變量編輯器顯示「句柄無效.PlotFigure {1,1}」。我不明白這一點,因爲句柄圖.PlotFigure確實存在。

我會很感激,如果有人運行的例子,並可以解釋我的疑惑。

回答

1

有關處理信息的方式嘗試從Mathworks公司這個簡短的視頻:

http://blogs.mathworks.com/videos/2008/04/17/advanced-matlab-handles-and-other-inputs-to-guide-callbacks/

+0

謝謝您的回答。 – julian 2011-04-04 17:08:50

+0

我想有人試圖運行上述示例並回答我的疑惑 – julian 2011-04-04 17:09:11

+0

我沒有Simulink,因此無法重現您的發現。如果您仍然不確定,可以在www.mathworks.com/matlabcentral/answers/ – 2011-04-07 07:55:32