这是一个基本问题,但我很难解决。
基本上,我有一个回调函数分配给 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 回调的输出。我已经将“块”定义为块集函数的输出,那么如何让 START_Callback 将其识别为输入?每次我尝试时,它只会告诉我“块”是一个未定义的函数或变量。
我需要对“'Callback', @blockset”行代码做些什么来让它识别函数的输出吗?
编辑:一些粗略的互联网搜索表明我可能必须使用 setappdata/getappdata 之类的东西,或者其他解决方法。但是,我并不完全理解这些文档。在这种情况下如何使用它们?