1

特定のグラフ出力を選択するために、いくつかのUIコントロールからの値を組み合わせようとしています。コードは次のとおりです。

まず、図を開きます。

figure('position',[100 100 700 350]);

パート1:ポップアップ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

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 の 2 つの関数を使用して、適切な軸に関連する数量をプロットできます。

于 2012-10-08T06:05:41.593 に答える