このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Product、Matrix Multiply
スカラー、非スカラーの乗算と除算、あるいは行列の乗算と逆行列
ライブラリ:
Simulink /
Commonly Used Blocks
Simulink /
Math Operations
Simulink /
Matrix Operations
HDL Coder /
Commonly Used Blocks
HDL Coder /
HDL Floating Point Operations
HDL Coder /
Math Operations
説明
Product ブロックは 2 つの入力を乗算した結果を出力します。入力は、2 つのスカラー、スカラーと非スカラー、あるいは同じ次元をもつ 2 つの非スカラーの場合があります。この動作を指定する既定のパラメーター値は以下のようになります。
乗算:
要素単位(.*)
入力数:
2
次の表は、既定のブロック パラメーター値を使用した場合のProduct ブロックによる次元が異なる入力の乗算の Product ブロックの出力を示しています。
入力と動作 | 例 |
---|---|
スカラー X スカラー 2 つの入力の積を出力します。 |
|
スカラー X 非スカラー 入力の非スカラーと同じ次元をもつ非スカラーを出力します。出力の非スカラーの各要素は、入力のスカラーと入力の非スカラーの対応する要素の積です。 |
|
非スカラー X 非スカラー 入力と同じ次元をもつ非スカラーを出力します。出力の各要素は、入力の対応する要素の積です。 |
|
Divide ブロックと Product of Elements ブロックは Product ブロックのバリアントです。
Divide ブロックの詳細については、Divide を参照してください。
Product of Elements ブロックの詳細については、Product of Elements を参照してください。
Product ブロック (または適切に構成される場合 Divide ブロックまたは Product of Elements ブロック) では、以下を行うことができます。
スカラー、ベクトル、または行列入力の数を、数値的に乗算や除算します。
行列入力の数に行列の乗算や除算を実行します。
Product ブロックは、[乗算] パラメーターの値に基づいてスカラーまたは行列の乗算を行います。このブロックは、[入力数] パラメーターに基づいて 1 つ以上の入力を受け入れます。[入力数] パラメーターは、各入力に実行される演算も指定します。
Product ブロックは、実行する演算が数学的に定義される結果をもつ場合、スカラー、ベクトルおよび行列の任意の組み合わせを入力できます。このブロックは、指定した演算を入力に対して実行し、結果を出力します。
Product ブロックには 2 つのモードがあります。要素単位モードは、2 つの非スカラー入力を要素ごとに処理します。行列モードは、2 つの非スカラー入力を行列として処理します。
要素単位モード
[乗算] を [要素単位(.*)]
に設定する場合、Product ブロックは "要素単位モード" になります。この場合、ブロックは任意の非スカラー入力の個々の数値要素に演算を行います。MATLAB® の等価な演算子は .*
です。要素単位モードでは、Product ブロックは、乗算、除算および算術的な逆演算などを実行できます。
[入力数] パラメーターの値は、どれだけの入力数があるか、それぞれが出力を生成するために乗算されるか除算されるかを決めます。要素単位モードの Product ブロックが 1 つの入力のみをもつ場合は、Product of Elements ブロックと機能的に等価です。ブロックが複数の入力をもつ場合、非スカラーの入力は同じ次元をもたなければなりません。ブロックは、これらと同じ次元をもつ非スカラーを出力します。ブロックは、出力を計算するためにスカラー入力を、非スカラー入力と同じ次元をもつ非スカラーにはじめに拡張します。
次の表は、[入力数] パラメーターに指定の値を使用した場合のProduct ブロックによる次元が異なる入力の乗算の Product ブロックの出力を示しています。
パラメーター値 | 例 |
---|---|
入力数: |
|
入力数: |
|
入力数: |
|
入力数: |
|
入力数: |
|
行列モード
[乗算] パラメーターの値が [行列 (*)]
である場合、Product ブロックは "行列モード" になります。この場合、ブロックは非スカラー入力を行列として処理します。MATLAB の等価な演算子は *
です。行列モードでは、Product ブロックで正方行列の逆行列を計算することも、結果が数学的に定義される次元をもつ、任意の数の行列の乗算や除算を行うこともできます。
[入力数] パラメーターの値は、どれだけの入力数があるか、それぞれの入力行列が出力を生成するために乗算されるか除算されるかを決めます。[入力数] の構文は、要素単位モードの場合と同じです。これらのモードでは、乗算と除算のタイプが異なります。
ブロックの入力とモード間の相互作用
Product ブロックの入力とその [乗算] モード間の相互作用は以下のとおりです。
1
、*
、または/
このブロックは 1 つの入力端子をもっています。要素単位モードでは、ブロックは Product of Elements ブロックで記述されたとおりに入力を処理します。行列モードでは、パラメーター値が
1
または*
の場合、ブロックは入力値を出力します。値が/
である場合、入力は正方行列 (縮退した場合としてスカラーを含む) でなければなりません。ブロックは逆行列を出力します。詳細については、要素単位モードおよび行列モードを参照してください。整数値 > 1
ブロックがもつ入力数は整数値で指定されます。[乗算] パラメーターで指定される要素単位モードまたは行列モードによって、入力は互いに乗算されます。詳細については、要素単位モードおよび行列モードを参照してください。
2 つ以上の
*
と/
から成る単純文字列ブロックは文字ベクトルの長さで与えられる入力数をもちます。
*
に相当する各入力は、乗算され、出力されます。/
に対応する各入力は除算され、出力されます。演算は、[乗算] パラメーターで指定されるように、要素単位モードまたは行列モードで行われます。詳細については、要素単位モードおよび行列モードを参照してください。
シミュレーションとコード生成の予想される相違点
複素数の浮動小数点入力に対する要素単位の演算について、近傍オーバーフローの場合は、シミュレーションとコード生成の結果は異なる可能性があります。[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成] 、 [インターフェイス] ペインで [複素数] が選択されていて [非有限数] が選択されていない場合でも、コード ジェネレーターは中程度のオーバーフローに対する特別なケース コードを出力しません。この方法は、極端な値を含まない一般的なケースの組み込み演算の効率を向上させます。入力に極端な値が含まれる可能性がある場合、これらのケースを明示的に管理しなければなりません。
NaN
および inf
の値が数学的に無意味の場合は、生成コードはシミュレーションとしてこれらの値と同じパターンは生成しない可能性があります。たとえば、シミュレーション出力に NaN
が含まれる場合、生成コードからの出力にも NaN
が含まれますが、同じ場所に含まれる必要はありません。
例
端子
入力
出力
パラメーター
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|