ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Direct Lookup Table (n-D)

要素、ベクトル、または 2 次元行列を検索するための N 次元テーブルのインデックス付け

  • ライブラリ:
  • Simulink / Lookup Tables

    HDL Coder / Lookup Tables

説明

Direct Lookup Table (n-D) ブロックは、要素、ベクトルまたは 2 次元行列を取得するために N 次元テーブルにインデックス付けを行います。1 番目の選択インデックスは最上位 (または左) の入力端子に対応します。テーブル データをブロックへの入力として提供するか、テーブル データをブロックのダイアログ ボックスで定義するかを選択できます。入力端子の数および出力のサイズは、テーブルの次元数および選択した出力スライスに依存します。

2 次元テーブルからベクトルを選択した場合、出力ベクトルは、モデル コンフィギュレーション パラメーターの [数学とデータ型][行優先の配列レイアウトに最適化されたアルゴリズムを使用] の設定に応じて列または行のどちらかになります。ブロック入力はゼロベースのインデックスです。詳細については、[テーブルからこのオブジェクトの選択を入力] パラメーターを参照してください。

Direct Lookup Table ブロックではシンボリック次元がサポートされます。

ブロックの入力と出力

Direct Lookup Table (n-D) ブロックは、入力を n 次元テーブルのゼロベースのインデックスとして使用します。入力数は出力の形状 (要素、ベクトル、2 次元行列) により異なります。

出力値のセットは、テーブル データ パラメーターで定義します。既定の列優先のアルゴリズムの動作では、最初の入力は、ゼロベースのインデックスを出力の次元より 1 つ大きいテーブルの次元に指定します。2 番目の入力は、ゼロベースのインデックスを次のテーブルの次元に指定し、以下同様になります。

出力形状出力の次元最初の入力にマップされるテーブルの次元
要素01
ベクトル12
行列23

4 次元テーブルから値のベクトルを選択するとします。

ブロック入力端子からテーブルの次元へは次のマッピングが適用されます。

入力端子テーブルの次元のインデックス
12
23
34

ブロック アイコンの外見の変更

ブロック アイコンの外見は、設定したパラメーターに従って変化します。テーブルの次元が 4 より大きい場合、アイコンは 4 次元バージョンのアイコンと同じですが、上部に正確な次元数が示されます。

[テーブル データ] パラメーターを使用する場合、既定の列優先の動作では、これらのアイコンが表示されます。一部のアイコンについては、コンフィギュレーション パラメーターの [数学とデータ型][行優先の配列レイアウトに最適化されたアルゴリズムを使用] を選択した場合は別のアイコンになります。

テーブルからの選択を入力するオブジェクトテーブルの次元数
1234

要素

ベクトル

2 次元行列

該当なし

テーブル入力端子を使用する場合、これらのアイコンが表示されます。

テーブルからの選択を入力するオブジェクトテーブルの次元数
1234

要素

ベクトル

2 次元行列

該当なし

端子

入力

すべて展開する

既定の列優先のアルゴリズムの場合、ゼロベースのインデックスを出力の次元より 1 つ大きいテーブルの次元に指定する最初の入力端子 (0、1 または 2)。2 番目の入力は、ゼロベースのインデックスを次のテーブルの次元に指定し、以下同様になります。すべてのインデックス入力は実数値でなければなりません。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated

既定の列優先のアルゴリズムの場合、ゼロベースのインデックスを出力の次元より N の数だけ大きいテーブルの次元に指定する N 番目の入力端子 (0、1 または 2)。入力数は出力の形状により異なります。すべてのインデックス入力は実数値でなければなりません。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated

テーブル データ。ベクトル、行列または N 次元配列として指定します。テーブル サイズは [次元数] パラメーターの次元に一致していなければなりません。ブロックの出力データ型は、テーブルのデータ型と同じです。

依存関係

この端子を有効にするには、[入力のテーブルの作成] チェック ボックスをオンにします。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated

出力

すべて展開する

出力スライス。スカラー、ベクトルまたは 2 次元行列として指定します。ブロックの出力のサイズは、[テーブルからこのオブジェクトの選択を入力] パラメーターの設定により決定されます。出力のデータ型は、テーブルのデータ型と同じです。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated

パラメーター

すべて展開する

メイン

テーブル

[テーブル データ] パラメーターがもたなければならない次元数。この値によって、テーブルの独立変数の数が決まり、ブロックへの入力の数が決まります。

指定する内容方法

1、2、3、または 4

ドロップダウン リストから値を選択します。

大きいテーブルの次元

フィールドに正の整数を直接入力します。

このブロックがサポートするテーブルの最大の次元数は 30 です。

プログラムでの使用

ブロック パラメーター: NumberOfTableDimensions
型: 文字ベクトル
値: '1' | '2' | '3' | '4' | ... |'30'|
既定の設定: '2'

テーブル データをブロック入力として Direct Lookup Table (n-D) ブロックに指定するには、このチェック ボックスをオンにします。このチェック ボックスをオンにすると、新しい入力端子 T が表示されます。この端子を使用してテーブル データを入力します。

プログラムでの使用

ブロック パラメーター: TableIsInput
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

出力値のテーブルを指定します。テーブル サイズは [テーブルの次元数] パラメーターの次元に一致していなければなりません。

ヒント

ブロック線図の編集時は、テーブル データ フィールドを空にしておいてかまいません。しかし、シミュレーションの場合は、テーブル データ の次元数を テーブルの次元数 と一致させる必要があります。MATLAB® で多次元配列を作成する方法の詳細については、多次元配列 (MATLAB)を参照してください。

[編集] をクリックしてルックアップ テーブル エディターを開きます。詳細については、ルックアップ テーブルの編集を参照してください。

依存関係

[テーブル データ] フィールドを有効にするには、[入力のテーブルの作成] チェック ボックスをオフにします。

プログラムでの使用

ブロック パラメーター: Table
型: 文字ベクトル
値: scalar, vector, matrix, or N-D array
既定の設定: '[4 5 6;16 19 20;10 18 23]'

アルゴリズム

出力データが単独の要素、ベクトル、または 2 次元行列であるかを指定します。インデックス付けのための入力端子の数は、選択内容によって異なります。

選択インデックス付けのための入力端子の数
要素 テーブルの次元数
ベクトル テーブルの次元数 - -1
2 次元行列 テーブルの次元数 - -2

この番号付けは、MATLAB のインデックス付けと一致します。たとえば、4 次元テーブルのデータがある場合は、以下のガイドラインに従います。

アクセス対象指定項目
要素4 インデックス array(1,2,3,4)
ベクトル3 インデックス array(:,2,3,4) (既定の列優先のアルゴリズム)
2 次元行列2 インデックス array(:,:,3,4) (既定の列優先のアルゴリズム)

ヒント

[数学とデータ型][行優先の配列レイアウトに最適化されたアルゴリズムを使用] コンフィギュレーション パラメーターが設定されている場合、Direct Lookup Table ブロックの動作は列優先から行優先に変わります。このブロックの場合、列優先と行優先のアルゴリズムでは出力計算に意味的な違いがあり、異なる数値が出力されることがあります。この機能には Simulink® Coder™ または Embedded Coder® のライセンスが必要です。たとえば、[テーブルからこのオブジェクトの選択を入力] パラメーターが [ベクトル] に設定されているとします。選択されたベクトルの要素はテーブルのストレージ メモリ内で連続しています。次の表に、列優先と行優先のアルゴリズムの動作をテーブルの次元ごとに示します。

テーブルの次元列優先のアルゴリズム行優先のアルゴリズム
2 次元のテーブル列ベクトルを選択行ベクトルを選択
3 次元以上のテーブルテーブルの最初の次元から出力ベクトルを選択テーブルの最後の次元から出力ベクトルを選択

直接ルックアップの列優先と行優先のアルゴリズムについて、3 次元のテーブルのベクトル出力で考えてみます。最後の次元は 3 次元テーブルの 3 番目の次元です。意味的な違いにより、列優先と行優先の直接ルックアップでは、出力されるベクトルのサイズや数値が異なる場合があります。

次の図は、3 次元テーブルとベクトル出力で構成された Direct Lookup Table (n-D) ブロックを示しています。このブロックを含むモデルが列優先のレイアウト用に構成されている場合、ブロックのアイコンは列優先のアルゴリズムを示すアイコンになります。

同じブロックで行優先のアルゴリズムを使用するには、モデルの [行優先の配列レイアウトに最適化されたアルゴリズムを使用] コンフィギュレーション パラメーターを変更して再コンパイルします。変更が反映され、ブロックのアイコンが行優先のレイアウト用に最適化されたアルゴリズムを示すアイコンに変わります。

行優先のサポートの詳細については、Row-Major Array Layout: Simplify integration with external C/C++ code for Lookup Table and other blocks (Simulink Coder)を参照してください。

プログラムでの使用

ブロック パラメーター: InputsSelectThisObjectFromTable
型: 文字ベクトル
値: 'Element' | 'Vector' | '2-D Matrix'
既定の設定: 'Element'

インデックスがテーブルの次元の範囲外である場合に警告またはエラーを表示するかどうかを指定します。オプションは次のとおりです。

  • なし — 応答しません。

  • 警告 — 警告が表示され、シミュレーションは続行されます。

  • エラー — シミュレーションを終了し、エラーを表示します。

なし または [警告] を選択した場合、ブロックは、範囲外のインデックスをテーブルの次元に合わせて固定します。たとえば、5.3 のインデックスを指定したとき、そのテーブルの最大インデックスが 4 である場合、インデックスは 4 に固定されます。

プログラムでの使用

ブロック パラメーター: DiagnosticForOutOfRangeInput
型: 文字ベクトル
値: 'None' | 'Warning' | 'Error'
既定の設定: 'Warning'

サンプル時間を -1 以外の値で指定します。詳細については、サンプル時間の指定を参照してください。

依存関係

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

プログラムでの使用

ブロック パラメーター: SampleTime
型: 文字ベクトル
値: スカラー
既定の設定: '-1'

テーブル属性

メモ

入力のテーブルの作成 を選択した場合、[テーブルの属性] ペインのパラメーターは使用できません。その場合、ブロックはラベル T の入力端子からすべてのテーブルの属性を継承します。

テーブル データの最小値を指定します。既定値は [] (指定なし) です。

プログラムでの使用

ブロック パラメーター: TableMin
型: 文字ベクトル
値: スカラー
既定の設定: '[]'

テーブル データの最大値を指定します。既定値は [] (指定なし) です。

プログラムでの使用

ブロック パラメーター: TableMax
型: 文字ベクトル
値: スカラー
既定の設定: '[]'

テーブル データ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: 継承: 'テーブル データ' から継承])

  • 組み込みデータ型名 (例: single)

  • データ型クラスの名前 (例: 列挙データ型クラス)

  • データ型を評価する式 (例: fixdt(1,16,0))

[データ型アシスタントを表示] ボタン をクリックして、データ型の属性の設定に役立つ [データ型アシスタント] を表示します。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

プログラムでの使用

ブロック パラメーター: TableDataTypeStr
型: 文字ベクトル
値: 'Inherit: Inherit from 'Table data'' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'boolean' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)'|'Enum: <class name>'|'<data type expression>'
既定の設定: 'Inherit: Inherit from 'Table data''

このパラメーターを選択して、このブロックについて指定したデータ型を固定小数点ツールがオーバーライドするのを防止します。詳細については、出力データ型設定のロック (Fixed-Point Designer)を参照してください。

プログラムでの使用

ブロック パラメーター: LockScale
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

ブロックの特性

データ型

Boolean | double | enumerated | fixed point[a] | integer | single

直接フィードスルー

はい

多次元信号

はい

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

[a] このブロックは、'テーブル' データの固定小数点データ型のみサポートします。

拡張機能

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

R2006a より前に導入