У меня есть вопрос к гуру MATLAB здесь ..
Итак, вот мой код (здесь показаны только строки кода, которые имеют отношение к проблеме):
mainProcess(hObject, handles)
handles.Checkpoint2 =1;
guidata(hObject, handles);
function testGUI1_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
handles.Checkpoint1 = 1;
mainProcess(hObject, handles);
handles.Checkpoint3 = 1; //EDIT: Checkpoint2 is also not visible at this line
guidata(hObject, handles);
handles.Checkpoint4 = 1;
function saveAndContinueButton_Callback(hObject, eventdata, handles)
(breakpoint here) --> faceDatabase(handles.currentImageIteration).lookingTowardsCamera=handles.lookingAtCamera;
Итак, в приведенном выше коде я создаю эти «контрольные точки» в разных частях кода и вижу, какие из них видны при отдельном нажатии кнопки «Сохранить и продолжить» ...
Checkpoint1 создается ДО вызова моей пользовательской функции mainProcess, Checkpoint2 создается в коде mainProcess, а Checkpoint3 создается ПОСЛЕ того, как mainProcess завершает выполнение, и элемент управления возвращается с вызывающей его функцией, которая testGUI1_OpeningFcn ... И Checkpoint4 создан WITHIN testGUI1_OpeningFcn, но ПОСЛЕ того, как структура дескрипторов обновляется в коде testGUI1_OpeningFcn ..
Итак, мой вопрос заключается в следующем: когда кнопка нажата, и я вижу, что видно в этой точке, контрольные точки 1 и 3 видны для кода обратного вызова кнопки, но контрольные точки 2 и 4 НЕ видны ... Я понимаю, что Checkpoint4 не виден, потому что он был создан ПОСЛЕ того, как структура дескрипторов была обновлена в коде testGUI1_OpeningFcn ... Но почему Checkpoint2 не виден, даже когда в конце кода mainProcess я поставил строку:
guidata(hObject, handles);
Я имею в виду, что функция mainProcess получает ссылки как на hObject, так и на дескрипторы, поэтому она должна иметь доступ к записи, верно?
Так почему же Checkpoint2 не виден для кода обратного вызова кнопки ..?
Есть какие-нибудь подсказки?
РЕДАКТИРОВАТЬ: Я только что попытался увидеть, видна ли Checkpoint2 даже в вызывающей функции mainProcess, сразу после того, как элемент управления возвращается вызывающей стороне, и даже там Checkpoint2 не видна (см. EDIT в приведенном выше коде) ..