Что такое правильный дескриптор для Matlab? - PullRequest
2 голосов
/ 29 марта 2011

Я новичок с Матлабом.Я учусь через документацию Matlab.В эти моменты я делаю пример «Графический интерфейс для установки параметров модели Simulink» .В разделе «Закрытие GUI» упомянутого выше, для обратного вызова кнопки Close появляется следующий код:

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);   

Я пытаюсь понять, что такое допустимые дескрипторы, анализируя поведениеручка handles.PlotFigure.Я вставил точку останова в строку номер четыре кода выше, и я запустил программу в режиме отладки.После этого мой вывод таков:
- Действительный дескриптор (в данном случае графический объект дескриптора с именем handles.PlotFigure) - это объект, который не был удален (закрыт) какой-либо командой.

Однако я не понимаю, почему поле дескриптора handles.PlotFigure остается внутри структуры дескрипторов и не было удалено.Еще один сюрприз, который я обнаружил во время отладки, заключался в том, что редактор переменных сказал: «Нет допустимых графиков для ручек .PlotFigure {1,1}».Я также не понимаю этого, потому что фигура для ручек .PlotFigure существовала.

Я был бы благодарен, если бы кто-нибудь запустил пример и смог объяснить мне мои сомнения.

1 Ответ

1 голос
/ 29 марта 2011

Для получения информации о ручках попробуйте это короткое видео от Mathworks:

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

...