我正在尝试组合来自多个UI控件的值,以便选择特定的图形输出。这是代码:
首先我们打开图:
figure('position',[100 100 700 350]);
第1部分:Popup UI控件输入值:
pullDown = uicontrol('style','popup',...
'position',[10 680 180 10],...
'string','Displacement|Velocity|Acceleration',...
'callback',@function1);
第2部分:radiobutton UI控件:
radioButtonGroup = uibuttongroup('visible','off',...
'units','pixels','position',[0 0 1 2],'backgroundcolor','white');
radio1 = uicontrol('Style','radiobutton','String','Computed',...
'position',[250 20 100 30],'parent',radioButtonGroup);
radio2 = uicontrol('Style','radiobutton','String','Recorded',...
'position',[400 20 100 30],'parent',radioButtonGroup);
所以,我正在尝试做的是写一个if-elseif,可以帮我做这样的事情(我只是用伪代码写):
if pullDown == 'Displacement' AND radio == 'Computed'
plot(graph1,x);
else if pullDown == 'Displacement' AND radio = 'Recorded'
plot(graph2,x);
...
等等。有什么想法吗?
提前致谢!
NAX
答案 0 :(得分:1)
你必须按照这些方针做点什么:
对于radiobutton组,使用'SelectionChangeFcn'。您可以使用radiobutton上的选择来选择要显示的图(这里是how:在radioButtonGroup定义的末尾添加'SelectionChangeFcn' ,@ plotComputedOrRecorded):
function plotComputedOrRecorded(source,eventdata)
switch get(eventdata.NewValue,'String')
quantity = QuantityStrs{get(pullDown,'value')};
%QuantityStrs = {'Displacement','Velocity','Acceleration'}
case 'Computed'
plotComputed(quantity);
case 'Recorded'
plotRecorded(quantity);
end
end
然后,您可以使用两个函数@plotComputed和@plotRecorded在相应的轴上绘制相关数量。