Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

動的なマスク ダイアログ ボックス

ユーザー入力に対応して変化するマスク ブロックのためのダイアログを作成できます。この方法で変更可能なマスク ダイアログの機能には、次のようなものがあります。

パラメーター コントロールの可視性: パラメーターを変更することで、他のパラメーターのためのコントロールを表示したり、非表示にしたりできます。コントロールが現れたり消えたりすると、ダイアログは拡張されたり縮小されたりします。

パラメーター コントロールの有効状態: パラメーターを変更することで、他のパラメーターのためのコントロールの入力を有効にしたり、無効にしたりできます。無効なコントロールは、無効であることを視覚的に示すために灰色で表示されます。

パラメーター値: マスク ダイアログ ボックス パラメーターを変更することで、関連付けられているマスク ダイアログ ボックス パラメーターを適切な値に設定できます。

メモ: マスク パラメーターの追加、削除、変更は、マスク コールバックから制限されます。

動的なマスク ダイアログ ボックスを作成するには、マスク エディターを set_param コマンドと共に使用する必要があります。厳密には、まずマスク エディター使って静的なものと動的なものの両方のすべてのダイアログ ボックス パラメーターを定義します。各動的パラメーターを変更するには、ダイアログ ボックスがそのパラメーターの変更に応答する方法を定義するコールバック関数を入力します。コールバック関数は、今度は、set_param コマンドを使用して、ダイアログ ボックスの他のコントロールの外観と設定に影響を与えるマスク パラメーターを設定できます。最後に、動的マスク ダイアログ ボックスの作成を確定するためにマスク サブシステムを含むモデルやライブラリを保存します。

モデルの確認

この例には、マスク パラメーターの可視性を変更するため、およびマスク パラメーターを無効にするための 2 つのサブシステム ブロック Making a Parameter Invisible および Disabling a Parameter が含まれています。

open_system("slexMaskDDGExample.slx");

マスク パラメーターの可視性の変更

このセクションの説明のために、サブシステム ブロック Making a Parameter Invisible を参照します。この例では、1 つのマスク パラメーターの可視性を、別のマスク パラメーターの値に基づいて変更する方法を示します。[Enable Bias] の値は、[Enable Bias] チェック ボックスをオンまたはオフにすることで設定されます。これは、[Bias Value] パラメーターの可視性を変更するために使用されます。

マスク パラメーターの可視性を変更するには、以下のようにします。

1. 2 つの編集パラメーター Gain Value および Bias を作成します。チェック ボックス パラメーター Enable Bias を作成します。

2. [コード] ペインの [初期化] セクションで以下のコードを使用します。

function initialization()
%In the Initialization command, the variable 'enableBias' corresponding to
the checkbox returns the following values:
unchecked = 0
checked = 1
% If the box is unchecked, we set the bias value to zero
if ~enableBias
  biasValue = 0;
end
% Othewise, the value from the mask parameter is used
end

3. enableBias のパラメーター コールバック セクションで以下のコードを使用します。

function enableBias_callback()
% Control parameter visiblity. Get the value of the Enable Bias checkbox
% unchecked = 'off'
% checked = 'on'
enab = get_param(gcb,'enableBias');
% Set the 'MaskVisibilities' property for each parameters
if strcmp(enab,'on')
  set_param(gcb,'MaskVisibilities',{'on','on','on'});
else
  set_param(gcb,'MaskVisibilities',{'on','on','off'});
end
% Note that the value of the bias is not handled here.
% See the Initialization tab
end

4. サブシステム ブロック Making a Parameter Invisible をダブルクリックします。Enable Bias パラメーターをオフにします。Bias パラメーターが非表示になります。

マスク パラメーターの無効化

この例では、サブシステム ブロック Disabling a Parameter を参照します。この例では、1 つのマスク パラメーターを、別のマスク パラメーターの値に基づいて無効にする方法を示します。チェックボックス Enable Bias を使用して [Bias Value] パラメーターを無効にし、グレー表示にします。

マスク パラメーターを無効にするには、以下のようにします。

1. 2 つの編集パラメーター Gain Value および Bias を作成します。チェック ボックス パラメーター Enable Bias を作成します。

2. [コード] ペインの [初期化] セクションで以下のコードを使用します。

function initialization()
% In the Initialization command, the variable 'enableBias' corresponding to
% the checkbox returns the following values:
% unchecked = 0
% checked = 1
If the box is unchecked, we set the bias value to zero
 if ~enableBias
     biasValue = 0;
end
% Othewise, the value from the mask parameter is used
 end

3. enableBias のパラメーター コールバック セクションで以下のコードを使用します。

function enableBias_callback()
% Enable and disable parameters
% Get the value of the Enable Bias checkbox
% unchecked = 'off'
% checked = 'on'
 enab = get_param(gcb,'enableBias');
Set the 'MaskEnables' property for each parameters
if strcmp(enab,'on')
    set_param(gcb,'MaskEnables',{'on','on','on'});
else
    set_param(gcb,'MaskEnables',{'on','on','off'});
end
% Note that the value of the bias is not handled here.
% See the Initialization tab
end

4. サブシステム ブロック Disabling a Parameter をダブルクリックします。Enable Bias パラメーターをオフにします。Bias パラメーターがグレー表示になります。

参考

動的なマスク サブシステム|