Matlab:使用来自多个uicontrols的值来绘制图形

时间:2012-10-08 05:28:26

标签: matlab user-interface plot radio-button uicontrol

我正在尝试组合来自多个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

1 个答案:

答案 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在相应的轴上绘制相关数量。