Чтобы получить доступ к структуре данных handles
, часто упоминаемой в документации пользовательского интерфейса MATLAB, вы должны использовать guidata
для установки новых значений и извлечения существующих значений при обратном вызове.
Так что из любого места, если вы хотите установить значение, вы захотите сделать что-то вроде:
handles.c = 3
% Replace `gcf` with the explicit handle to your figure if possible
guidata(gcf, handles)
Тогда внутри вашего обратного вызова вы можете получить текущий guidata
следующим образом:
function callback(src, event)
handles = guidata(src);
display(handles.c)
end
А затем назначьте эту функцию в качестве обратного вызова для вашего uicontrol
A = uicontrol('Style', 'pushbutton', 'Callback', @callback);
Если вы не хотите создавать отдельную функцию обратного вызова и вместо этого настаивать на одно-лайнер, вы можете создать анонимную функцию для выполнения аналогичной задачи
A.callback = @(src, evnt)display(getfield(guidata(src), 'c'))
Как видите, явная функция немного легче понять