Main Content

Selector

ベクトル信号または行列信号、多次元信号からの入力要素を選択

  • Selector block

ライブラリ:
Simulink / Signal Routing
HDL Coder / Signal Routing

説明

Selector ブロックは、指定されたインデックスに基づいて入力ベクトル、行列、多次元信号の選択された要素を抽出します。抽出された信号は、入力信号とは異なる方法でグループ化できます。

[入力の次元数] パラメーターに入力した値に基づき、インデックス設定の表が表示されます。表の各行は、[入力の次元数] の入力次元に対応します。各次元について、信号に機能させる要素を定義します。ベクトルは 1 次元信号として、行列は 2 次元信号として指定します。Selector ブロックを多次元信号操作用に構成するときは、ブロックのアイコンが変化します。

たとえば、1 ベースのインデックス モードで 6 次元信号を使用します。Selector ブロック ダイアログの表は、各次元について 1 行を含むように変更されます。次元を次の表に示すように定義した場合、出力は Y = U(1:end,2:6,[1 3 5],Idx4:Idx4+7,Idx5,Idx6(1):Idx6(2)) です。ここで、Idx4Idx5、および Idx6 は次元 4、5、および 6 のインデックス端子です。

インデックス オプションインデックス出力サイズ
1すべて選択  
2開始インデックス (ダイアログ)25
3インデックス ベクトル (ダイアログ)[1 3 5] 
4開始インデックス (端子) 8
5インデックス ベクトル (端子)  
6最初と最後のインデックス (端子)  

バス配列を Selector ブロックの入力信号として使用できます。バス配列の定義と使用方法の詳細は、非バーチャル バスのバス配列へのグループ化を参照してください。

制限

  • [インデックス] パラメーターはシミュレーション時には調整できません。次元の [インデックス オプション][インデックス ベクトル (ダイアログ)] または [開始インデックス (ダイアログ)] に設定し、ブロック ダイアログで対応する [インデックス] に対して Simulink.Parameter オブジェクトなどのシンボリック値を指定すると、シミュレーションの開始時の瞬時値がシミュレーション全体を通して使用され、パラメーターはインライン化された値として生成されたコードに表示されます。ブロック パラメーター値の調整と試行を参照してください。インデックス端子を使用して選択インデックスを動的に調整できます。

端子

入力

すべて展開する

入力信号と出力信号に対する要素のソース

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | image

対応する出力要素の選択用のインデックスを指定する外部端子。

カスタム幅の整数 (15 ビット整数や 23 ビット整数など) をインデックス信号の値として指定できます。整数の幅を構成するときは、[モード][固定小数点] として指定し、[語長] を 128 以下、[勾配] を 1、[バイアス] を 0 にする必要があります。固定小数点データ型の指定の詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

依存関係

外部のインデックス端子を有効にするには、[インデックス オプション] 表の対応する行の [インデックス オプション][インデックス ベクトル (端子)][開始インデックス (端子)]、または [最初と最後のインデックス (端子)] に設定します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

出力

すべて展開する

入力信号の選択されたまたは記録された要素から生成された出力信号。

データ型: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | image

パラメーター

すべて展開する

入力信号の次元数を指定します。

プログラムでの使用

ブロック パラメーター: NumberOfDimensions
型: 文字ベクトル
値: integer
既定の設定: '1'

インデックス モードを指定します。[One-based] を選択した場合、インデックス 1 は入力ベクトルの最初の要素を指定します。[Zero-based] を選択した場合、インデックス 0 は入力ベクトルの最初の要素を指定します。

プログラムでの使用

ブロック パラメーター: IndexMode
型: 文字ベクトル
値: 'One-based' | 'Zero-based'
既定の設定: 'One-based'

次元単位で信号の要素のインデックス付けの方法を定義します。リストから以下を選択します。

  • すべて選択

    その他のコンフィギュレーションは必要ありません。すべての要素が選択されます。

  • インデックス ベクトル (ダイアログ)

    [インデックス] 列が有効になります。要素のインデックス ベクトルを入力します。

  • インデックス ベクトル (端子)

    その他のコンフィギュレーションは必要ありません。

  • 開始インデックス (ダイアログ)

    [インデックス] および [出力サイズ] 列が有効になります。選択した要素の範囲の開始インデックスを [インデックス] 列に、選択した要素数を [出力サイズ] 列に入力します。

  • 開始インデックス (端子)

    [出力サイズ] 列が利用可能になります。選択した要素数を [出力サイズ] 列に入力します。

  • 最初と最後のインデックス (端子)

    その他のコンフィギュレーションは必要ありません。

    このオプションを使用すると、可変サイズの信号が出力されます。更新すると、出力信号の次元が入力信号の次元と等しくなるように設定されます。実行中、インデックスを与える信号にもとづいて出力の次元が更新されます。

    出力信号データのログを記録すると、選択されていない信号が NaN 値でパディングされます。

[インデックス] 列と [出力サイズ] 列は、必要に応じて表示されます。

プログラムでの使用

ブロック パラメーター: IndexOptionArray
型: 文字ベクトル
値: 'Select all' | 'Index vector (dialog)' | 'Index option (port)' | 'Starting index (dialog)' | 'Starting index (port)' | Starting and ending indices (port)
既定の設定: 'Index vector (dialog)'

[インデックス オプション][インデックス ベクトル (ダイアログ)] の場合は、対象となる各要素のインデックスを入力します。

[インデックス オプション][開始インデックス (ダイアログ)] の場合は、選択した要素の範囲の開始インデックスを入力します。

プログラムでの使用

ブロック パラメーター: IndexParamArray
型: 文字ベクトル
値: cell 配列
既定の設定: '{ }'

ブロックの出力信号の幅を指定します。

プログラムでの使用

ブロック パラメーター: OutputSizeArray
型: 文字ベクトル
値: cell 配列
既定の設定: '{ }'

1 次元信号のブロックの入力信号の幅を指定します。駆動ブロックから継承するには「-1」を入力します。

プログラムでの使用

ブロック パラメーター: InputPortWidth
型: 文字ベクトル
値: integer
既定の設定: '3'

サンプルの時間間隔を指定します。サンプル時間を継承するには、このパラメーターを -1 に設定します。詳細については、サンプル時間の指定を参照してください。

依存関係

このパラメーターは、-1 以外の値に設定した場合にのみ表示されます。詳細は、サンプル時間が推奨されないブロックを参照してください。

プログラムでの使用

ブロック パラメーター: SampleTime
型: string スカラーまたは文字ベクトル
既定の設定: "-1"

アクセラレータ モードまたはラピッド アクセラレータ モードでのシミュレーション時に、いずれかのインデックス値が入力信号の関連する次元に対して有効なインデックスの範囲外にあるかどうかを Simulink® でチェックするには、このチェック ボックスをオンにします。インデックスが範囲外の場合、Simulink はシミュレーションを停止し、エラー メッセージを表示します。

メモ

このチェック ボックスをオンにしない場合、範囲外のインデックス値によって、アクセラレータ モードまたはラピッド アクセラレータ モードのシミュレーション時に未定義の動作が発生する可能性があります。

Simulink はこのチェック ボックスをオンにするかどうかに関係なく、ノーマル モードのシミュレーション時にこのチェックを実行します。

プログラムでの使用

パラメーター: RuntimeRangeChecks
型: 文字ベクトル
: 'Off' | 'On'
既定の設定: 'Off'

ブロックの特性

データ型

Boolean | double | enumerated | fixed point | half | integer | single

直達

いいえ

多次元信号

はい

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

PLC コード生成
Simulink® PLC Coder™ を使用して構造化テキスト コードを生成します。

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2006a より前に導入

すべて展開する