Index Vector
最初の入力の値に基づいてさまざまな入力間での出力の切り替え

ライブラリ:
Simulink /
Signal Routing
HDL Coder /
Signal Routing
説明
Index Vector ブロックは、0 ベースの制御入力でデータ入力を 1 つ指定した Multiport Switch ブロックの特殊な構成です。ブロックの出力は、インデックスが制御入力と一致する入力ベクトルの要素です。たとえば入力ベクトルが [18 15 17 10]
で制御入力が 3
の場合、インデックスが 3 (0 ベース) の要素は 10 であり、その値が出力されます。
Multiport Switch ブロックを Index Vector ブロックとして動作させるよう構成するには、[データ端子数] を [1]
に設定し [データ端子の順序] を [0 ベースの連続]
に設定します。
Multiport Switch ブロックの詳細については、Multiport Switch ブロックのリファレンス ページを参照してください。
例
端子
入力
Port_1 — 制御信号
スカラー
制御信号。スカラーとして指定します。制御入力が整数値でない場合、ブロックにより、ゼロ方向に丸めることで値が整数になるように切り捨てられます。
列挙型の制御信号の詳細については、Multiport Switch ブロックのリファレンス ページの列挙型制御端子のパラメーターを設定するためのガイドラインを参照してください。
制限
制御信号が数値型の場合は、制御信号は複素数にはできません。
制御信号が列挙型の信号である場合、ブロックは基となる整数値を使用してデータ端子を選択します。
基となる整数がデータ入力に対応していない場合はエラーになります。
データ型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
0 or 1 — 1 番目のデータ入力
スカラー | ベクトル
1 番目のデータ入力。スカラーまたはベクトルとして指定します。[データ端子の順序] が [0 ベースの連続]
に設定されている場合は端子に [0] というラベルが付けられ、[データ端子の順序] が [1 ベースの連続]
に設定されている場合は [1] というラベルが付けられます。
データ型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| bus
| enumerated
| string
出力
Port_1 — 制御信号値に基づいて選択したデータ入力
スカラー
ブロックは、制御信号の値に従って、入力データ ベクトルから選択した値を出力します。出力はスカラーです。
データ型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
パラメーター
メイン
データ端子の順序 — データ入力端子の順序のタイプ
0 ベースの連続
(既定値) | 1 ベースの連続
| インデックスの指定
データ入力端子の順序のタイプを指定します。
0 ベースの連続
— 連続データ端子の順序付けに、ブロックは 0 ベースのインデックスを使用します。これは Index Vector ブロックの既定値です。1 ベースの連続
— 連続データ端子の順序付けに、ブロックは 1 ベースのインデックスを使用します。これは Multiport Switch ブロックの既定値です。インデックスの指定
— ブロックは、データ端子の順序付けに非連続インデックスを使用します。この値は、2 つ以上の入力データ端子をもつ構成でのみサポートされます。
ヒント
制御端子が列挙型の場合、
インデックスの指定
を選択します。[0 ベースの連続]
または[1 ベースの連続]
を選択する場合は、制御端子が列挙型でないことを確認してください。この構成は廃止されているため、エラーが発生します。使用しているモデルでアップグレード アドバイザーを実行して、この構成の各 Multiport Switch ブロックを、データ端子インデックスを明示的に指定するブロックと置き換えることができます。モデルのアップグレードを参照してください。ブロックにシミュレーションまたはコード生成のための未使用のデータ端子が含まれる状況を回避します。制御端子が固定小数点または組み込みデータ型の場合は、すべてのデータ端子インデックスがそのデータ型で表現されることを確認します。それ以外の場合は、次のようにブロックが動作します。
ブロックに未使用のデータ端子が含まれ、データ端子の順序が以下の場合 ブロックは以下を生成 [0 ベースの連続]
または[1 ベースの連続]
警告 インデックスの指定
エラー
依存関係
[0 ベースの連続]
または [1 ベースの連続]
を選択すると、[データ端子数] パラメーターが有効になります。
インデックスの指定
を選択すると、[データ端子インデックス] パラメーターが有効になります。
プログラムでの使用
ブロック パラメーター: DataPortOrder
|
型: 文字ベクトル |
値: 'Zero-based contiguous' | 'One-based contiguous' | 'Specify indices' |
既定の設定: 'Zero-based contiguous' |
データ端子数 — データ入力端子の数
1
(既定値) | 1 と 65536 の間の整数
このブロックへのデータ入力端子の数を指定します。
依存関係
このパラメーターを有効にするには、[データ端子の順序] を [0 ベースの連続]
または [1 ベースの連続]
に設定します。
プログラムでの使用
ブロック パラメーター: Inputs
|
型: 文字ベクトル |
値: 1 と 65536 の間の整数 |
既定の設定: '1' |
Signal Attributes
すべてのデータ端子入力が同じデータ型をもつ — すべての入力が同じデータ型をもつ
off
(既定値) | on
このチェック ボックスをオンにした場合、すべてのデータ入力端子が同じデータ型でなければなりません。このチェック ボックスをオフにすると、ブロックのデータ端子入力は異なるデータ型をもつことができます。
プログラムでの使用
ブロック パラメーター: InputSameDT |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
出力の最小値 — 範囲チェックの最小出力値
[]
(既定値) | スカラー
Simulink® がチェックする出力範囲の下限値。
Simulink は、最小値を使って以下を行います。
一部のブロックに対するパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定を参照)
シミュレーション範囲のチェック (信号範囲の指定およびシミュレーション範囲のチェックの有効化を参照)
固定小数点データ型の自動スケーリング
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、SIL やエクスターナル モードなどの一部のシミュレーション モードの結果に影響を与えることがあります。詳細については、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[出力の最小値] により、実際の出力信号が飽和する (またはクリップされる) ことはありません。代わりに、Saturation ブロックを使用してください。
プログラムでの使用
ブロック パラメーター: OutMin |
型: 文字ベクトル |
値: '[ ]' | スカラー |
既定の設定: '[ ]' |
出力の最大値 — 範囲チェックの最大出力値
[]
(既定値) | スカラー
Simulink がチェックする出力範囲の上限値。
Simulink は、最大値を使って以下を行います。
一部のブロックに対するパラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定を参照)
シミュレーション範囲のチェック (信号範囲の指定およびシミュレーション範囲のチェックの有効化を参照)
固定小数点データ型の自動スケーリング
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、SIL やエクスターナル モードなどの一部のシミュレーション モードの結果に影響を与えることがあります。詳細については、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
メモ
[出力の最大値] により、実際の出力信号が飽和する (またはクリップされる) ことはありません。代わりに、Saturation ブロックを使用してください。
プログラムでの使用
ブロック パラメーター: OutMax |
型: 文字ベクトル |
値: '[ ]' | スカラー |
既定の設定: '[ ]' |
出力データ型 — 出力データ型を指定
継承: 内部ルールによる継承
(既定値) | 継承: 逆伝播による継承
| 継承: 最初のデータ入力と同じ]
| double
| single
| half
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| [fixdt(1,16)]
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| string
| Simulink.ImageType(480,640,3)
| <data type expression>
出力のデータ型を選択します。型は継承されるか、直接指定されるか、Simulink.NumericType
などのデータ型オブジェクトとして表現されます。
継承オプションを選択すると、ブロックは次のように動作します。
継承: 内部ルールによる継承
— Simulink は、組み込みターゲット ハードウェアのプロパティを考慮しつつ、数値の精度、パフォーマンス、および生成コードのサイズのバランスが取れるように、データ型を選択します。組み込みターゲット ハードウェアの設定を変更すると、内部ルールにより選択されるデータ型が変更される可能性があります。コードの効率と数値の精度が、ソフトウェアにより同時に最適化されるとは限りません。内部ルールが、数値精度またはパフォーマンスに対する要求を満たさない場合は、以下のいずれかを行ってください。出力データ型を明示的に指定する。
fixdt(1,32,16)
のように既定のデータ型を明示的に指定し、固定小数点ツールを使用してモデルにデータ型を推奨する。詳細については、fxptdlg
(Fixed-Point Designer) を参照してください。独自の継承ルールを指定するには、
[継承: 逆伝播による継承]
を使用し、Data Type Propagation ブロックを使用します。このブロックの使い方の例については、Signal Attributes ライブラリの Data Type Propagation Examples ブロックを参照してください。
継承: 逆伝播による継承
— 駆動ブロックのデータ型を使用します。継承: 最初のデータ入力と同じ
— 1 番目のデータ入力端子のデータ型を使用します。
プログラムでの使用
ブロック パラメーター: OutDataTypeStr |
型: 文字ベクトル |
値: 'Inherit: Inherit via internal rule | 'Inherit: Inherit via back propagation' | 'Inherit: Same as first input' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'string' | Simulink.ImageType(480,640,3) | '<data type expression>' |
既定の設定: 'Inherit: Inherit via internal rule' |
固定小数点ツールによる変更に対して出力データ型の設定をロックする — 固定小数点ツールがデータ型をオーバーライドするのを防止
off
(既定値) | on
固定小数点ツールや固定小数点アドバイザーによる変更を避けるために、このブロックの出力データ型の設定をロックします。詳細については、[出力データ型の設定をロックする] の使用 (Fixed-Point Designer)を参照してください。
プログラムでの使用
ブロック パラメーター: LockScale |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
整数丸めモード — 固定小数点演算の丸めモードを指定
負方向
(既定値) | 正方向
| 最も近い偶数方向
| 最も近い正の整数方向
| 最も近い整数方向
| 最も簡潔
| ゼロ方向
次のいずれかの丸めモードを選択します。
正方向
正の無限大方向に正負の値を丸めます。MATLAB® 関数
ceil
と等価です。最も近い偶数方向
最も近い表現可能な値に数値を丸めます。同順位が発生した場合は、最も近い偶数の整数に丸めます。Fixed-Point Designer™ 関数
convergent
と等価です。負方向
負の無限大方向に正負の値を丸めます。MATLAB 関数
floor
と等価です。最も近い正の整数方向
最も近い表現可能な値に数値を丸めます。同順位が発生した場合は、正の無限大方向に丸めます。Fixed-Point Designer 関数
nearest
と等価です。最も近い整数方向
最も近い表現可能な値に数値を丸めます。同順位が発生した場合は、正の数値を正の無限大方向、負の数値を負の無限大方向に丸めます。Fixed-Point Designer 関数
round
と等価です。最も簡潔
下限値への丸めとゼロへの丸めのいずれかを自動的に選択し、できるだけ効率の高い丸めコードを生成します。
ゼロ方向
ゼロ方向に数値を丸めます。MATLAB 関数
fix
と等価です。
プログラムでの使用
ブロック パラメーター: RndMeth |
型: 文字ベクトル |
値: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
既定の設定: 'Floor' |
参考
詳細については、丸め (Fixed-Point Designer)を参照してください。
整数オーバーフローで飽和 — オーバーフロー アクションの方法
off
(既定値) | on
オーバーフローで飽和するかラップするかを指定します。
off
— オーバーフローは、データ型によって表現される適切な値にラップされます。たとえば、数 130 は符号付き 8 ビット整数 1 つに収まりきらないので、-126 にラップされます。
on
— オーバーフローは、データ型が表現できる最小値または最大値のいずれかに飽和します。たとえば、符号付き 8 ビット整数に関連付けられたオーバーフローは、-128 または 127 に飽和することができます。
ヒント
モデルでオーバーフローが発生する可能性があり、生成コードに飽和保護を明示的に組み込む必要があるときには、このチェック ボックスをオンにすることを検討してください。
生成コードの効率を最適化する場合には、このチェック ボックスをオフにすることを検討してください。
このチェック ボックスをオフにすると、ブロックが範囲外の信号を処理する方法を指定しすぎないようにする点でも役立ちます。詳細については、信号範囲のエラーのトラブルシューティングを参照してください。
このチェック ボックスをオンにすると、飽和は出力や結果だけでなく、このブロックの内部演算すべてに適用されます。
通常、オーバーフローが可能ではない場合は、コード生成プロセスで検出されます。この場合、コード ジェネレーターでは飽和コードは生成されません。
プログラムでの使用
ブロック パラメーター: SaturateOnIntegerOverflow |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
異なるデータ入力サイズを許可する (可変サイズの出力信号となる) — 異なるサイズの入力信号を許可
off
(既定値) | on
異なるサイズの入力信号を許可するには、このチェック ボックスをオンにします。
On
— 異なるサイズの入力信号が許可され、入力信号サイズが出力信号に伝播されます。このモードでは、ブロックは可変サイズの出力信号を生成します。Off
— すべての非スカラー データ入力信号が同じサイズである必要があります。
プログラムでの使用
パラメーター: AllowDiffInputSizes |
型: 文字ベクトル |
値: 'on' | 'off' |
既定の設定: 'off' |
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための Verilog および VHDL のコードを生成します。
HDL Coder™ には、HDL の実装および合成されたロジックに影響する追加のコンフィギュレーション オプションがあります。
Index Vector ブロックは [データ端子数] が 1 に設定された Multiport Switch ブロックです。HDL コード生成の詳細については、Multiport Switch を参照してください。
PLC コード生成
Simulink® PLC Coder™ を使用して構造化テキスト コードを生成します。
固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)