这是一个基本的问题,但我很难与它。MATLAB的uicontrol回调函数句柄输出
基本上,我有一个回调函数分配给GUI上弹出菜单中的选项。代码如下:
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回调的输出。我已经将“block”定义为块集函数的输出,那么如何让START_Callback将其识别为输入?每次尝试时,它都会告诉我“block”是一个未定义的函数或变量。
有什么我需要做的'回调',@ blockset“的代码行,让它识别功能的输出?
编辑:一些粗略的互联网搜索表明,我可能不得不使用像setappdata/getappdata,或另一种解决方法的方法。但是,我并不完全理解这些文档。我如何在这种情况下使用它们?