Using Simulink | ![]() ![]() |
スカラ、ベクトル、2次元行列を取得するためのN次元テーブルのインデックス
ライブラリ
詳細
Direct Look-Up Table (n-D)ブロックは、ブロック入力をn次テーブルのゼロベースのインデックスとして使用します。入力数は、希望する出力の形状により異なります。出力は、スカラ、ベクトル、2次元行列です。ルックアップテーブルは、ゼロベースのインデックスを利用するので、整数のデータタイプはこの範囲全体を示すことができます。たとえば、uint8
データタイプを使ったテーブルの大きさは、256 要素を表わすことができます。
出力値の組を Table data パラメータとして定義します。出力の形状をスカラ、ベクトル、2次元行列として指定します。つぎの図に示すように、最初の入力は出力の次元数よりも大きい最初の次元のゼロベースのインデックスを指定し、2番目の入力はつぎのテーブルの次元のインデックスを指定、のように指定します。
図は、出力形状が"2-D Matrix"に設定された5次元テーブルを示しています。出力は、R行C列の2次元行列です。
つぎの図は、(ブロックのダイアログボックスでどのオプションを選択したかにより)Direct Look-Up Tableブロックが表わすすべてのアイコンを示しています。
4よりも大きい次元については、アイコンは4-Dアイコンと一致しますが、テキストの一番上に "8-D T[k]" のように正確な次元数を表示します。アイコンの一番上の行は、ブロック出力が1つまたは複数要素のテーブルルックアップから得られるときに用いられます。"n-D Direct Table Lookup5" とラベル付けられたブロック 6, 8, 12 は、テーブルから列を抽出するように設定され、7 および 9 で終わる2つのブロックはテーブルから面を抽出します。10, 11 および 12 で終わるfigureのブロックは、テーブルをパラメータではなく入力として設定します。
例題
Invalid input value: "Clip and Warn" Output shape: "Vector" Table data: int16(a)
ここで、aはMATLABを使って計算される線形増加する数値をもつ4次元配列です。
a = ones(20,4,5,7); L = prod(size(a)); a(1:L) = [1:L]';
テーブルのインデックスはゼロベースで、figureは、ブロックが4次元目の3番目の要素から、3次元目の4番目の要素の2列目の20個の値からなるベクトルを出力することを示します。
この例での出力値は、(1ベースのインデックス付けを用いる)MATLABでマニュアルで計算できます
a(:,1+1,1+3,1+2)
ans =
1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080
サポートされているデータタイプ
Direct Look-Up Table (n-D)ブロックは、double
, single
, int8
, uint8
, int16
, uint16
, int32
, uint32
タイプの混在する信号を受け入れます。出力タイプは、入力タイプと異なり、入力についてリストされた任意のタイプでかまいません。出力タイプは、Table data パラメータのデータタイプから継承されます。
テーブルが入力端子においてブロックに接続する場合、出力端子のタイプはテーブルの入力端子から継承されます。インデックス付けのための入力は、実数でなければなりません。テーブルのデータは複素数でもかまいません。
ダイアログボックス
特性
直接フィードスルー |
あり |
サンプル時間 |
接続されるブロックから継承 |
スカラ拡張 |
スカラのルックアップについてのみ(テーブルから列または2次元行列を出力しないとき) |
ベクトル化 |
スカラのルックアップについてのみ(テーブルから列または2次元行列を出力しないとき) |
ゼロクロッシング |
なし |
![]() | Digital Clock | Discrete Filter | ![]() |