Это основной вопрос, но мне сложно с ним справиться.MATLAB uicontrol callback function handle output
В принципе, у меня есть функция обратного вызова, назначенная для выбора во всплывающем меню в графическом интерфейсе. Код выглядит следующим образом:
uicontrol(mainfigure, 'Style', 'popup',...
'String', 'A|B|C',...
'Position',[850 190 200 30],...
'Callback', @blockset);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [block] = blockset(hObj,evnt) %#ok<INUSD>
blockval = get(hObj,'Value');
if blockval == 1
block = 'A';
elseif blockval == 2
block = 'B';
elseif blockval == 3
block = 'C';
end
end
Как вы можете видеть, это просто присвоение значения строкового различных вариантов в раскрывающемся меню. Я хочу использовать эти строки в качестве входных значений в другую функцию в сценарии (который также встроенный в UIControl обратного вызова):
uicontrol(mainscreen, 'Style', 'pushbutton',...
'Position',[855 300 150 50],...
'String', 'START',...
'FontSize',10,'FontWeight','bold',...
'BackgroundColor', [.9 .9 .9],...
'CallBack', {@START_Callback, block});
код как есть не работает. Но я не могу понять, как определить выходные данные для обратного вызова uicontrol. Я уже определил «блок» как выход для функции набора, так как я могу получить START_Callback, чтобы распознать его как вход? Каждый раз, когда я пытаюсь, он просто говорит мне, что «block» - неопределенная функция или переменная.
Есть ли что-то, что мне нужно сделать с помощью строки кода «Обратный звонок», @blockset », чтобы узнать, как это узнать из функции?
EDIT: Некоторые беглые поисковые запросы в Интернете показывают, что я, вероятно, должен использовать что-то вроде setappdata/getappdata или другой метод обходного пути. Однако я не совсем понимаю документацию по этим вопросам. Как использовать их в этой ситуации?