Questions About MENU Function

3 次查看(过去 30 天)
Kent
Kent 2013-5-1
Hi there,
I am trying to create a menu and ask a question, wait for user's input and then use the input for further calculations.
I have 3 questions and each question only requires user to answer 'YES' or 'NO'. Using MATLAB's MENU function, I am able to do what I want. However, I would like to know if these 3 questions can be shown in one single window and ask for user's response instead of opening a new window after each question is answered.
Thanks, Kent

回答(2 个)

Walter Roberson
Walter Roberson 2013-5-1
Not using "menu". Yes using inputdlg(): see the example at http://www.mathworks.com/help/matlab/ref/inputdlg.html
Note: inputdlg() is a graphics function only, whereas menu() will use graphics if available but will use character text if graphics is not available.

Sean de Wolski
Sean de Wolski 2013-5-2
How about using a GUI with six radio buttons?
function choices = simpleRadioGUI
hFig = figure('WindowStyle','modal');
hBG = zeros(3,1);
for ii = 1:3
hBG(ii) = uibuttongroup;
uicontrol('Style','radio',...
'Units','normalized',...
'Position',[0.1 0.1*ii+0.1 0.3 0.1],...
'String','Yes!',...
'Callback',[],...
'Parent',hBG(ii),...
'Value',true);
uicontrol('Style','radio',...
'Units','normalized',...
'Position',[0.6 0.1*ii+0.1 0.3 0.1],...
'String','No',...
'Callback',[],...
'Parent',hBG(ii),...
'Value',false);
end
uicontrol('Style','pushbutton',...
'Units','normalized',...
'Position',[0.3 0.05 0.4 0.05],...
'String','Done',...
'Callback',@(~,~)closeIt);
choices = cell(3,1);
uiwait(hFig);
function closeIt
fields = {'No','Yes'};
for kk = 3:-1:1
hC = get(hBG(kk),'Children');
choices{kk} = fields(get(hC(2),'Value')+1);
end
close(hFig)
end
end

类别

Help CenterFile Exchange 中查找有关 Startup and Shutdown 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by