rb1
ラジオボタンのハンドルがとであり、それらが構造体rb2
に格納されているとしましょう。handles
次に、'Value'
プロパティを使用してそれらが選択されているかどうかを確認できます。
function apollo(hObj, eventdata, handles)
if get(handles.hrb1, 'Value')
% do stuff
elseif get(handles.hrb2, 'Value')
% do other stuff
end
end
更新: OPのコメントへの応答SelectionChangeFcn
:
多くのデータがない場合は、最初にすべてをプロットしてからVisible
、プロットのプロパティを変更できます。
function cbSelectionChange(hObj, eventdata, handles)
rbTag = get(eventData.NewValue, 'Tag');
switch rbTag
case 'rb1'
set(handles.plotHandle1, 'Visible', 'On');
set(handles.plotHandle2, 'Visible', 'Off');
case 'rb2'
set(handles.plotHandle2, 'Visible', 'On');
set(handles.plotHandle1, 'Visible', 'Off');
end
end
大量のデータがある場合は、SelectionChangeFcn
コールバックからplot_data関数を呼び出すことができます。
function cbSelectionChange(hObj, eventdata, handles)
rbTag = get(eventData.NewValue, 'Tag');
switch rbTag
case 'rb1'
plot_data(yourArguments1);
case 'rb2'
plot_data(yourArguments2);
end
end
コードを変更しない限り、データを渡すことによってコードのパフォーマンスが影響を受けることはありません。ダグハルはここに言います:
MATLABは、一般に「コピーオンライト」と呼ばれるシステムを使用して、入力引数を変更するまで、または変更しない限り、関数ワークスペース内に入力引数のコピーを作成しないようにします。input引数を変更しない場合、MATLABはコピーの作成を回避します。