【问题标题】:Matlab: Using values from multiple uicontrols to plot a graphMatlab:使用来自多个 uicontrols 的值来绘制图形
【发布时间】:2012-09-28 08:28:16
【问题描述】:

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

等等。有什么想法吗?

提前致谢!

NAX

【问题讨论】:

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


    【解决方案1】:

    你必须按照这些思路做点什么:

    对于单选按钮组,使用'SelectionChangeFcn'。您可以使用单选按钮上的选择来选择要显示的图(这里是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 在相应的轴上绘制相关数量。

    【讨论】:

    • 非常感谢,这正是我所需要的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 2018-05-29
    相关资源
    最近更新 更多