1

我正在尝试组合来自多个 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 部分:单选按钮 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);
...

等等。有任何想法吗?

提前致谢!

纳克斯

4

1 回答 1

1

您必须按照以下方式做一些事情:

对于单选按钮组,使用 'SelectionChangeFcn' 。您可以使用单选按钮上的选择来选择要显示的图(方法如下:在 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 在适当的轴上绘制相关数量。

于 2012-10-08T06:05:41.593 回答