這是一個基本的問題,但我很難與它。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,或另一種解決方法的方法。但是,我並不完全理解這些文檔。我如何在這種情況下使用它們?