ドキュメンテーション

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

Product of Elements

1 つのスカラー入力のコピーまたは逆数、あるいは 1 つの非スカラー入力をベクトルやスカラーに変換

ライブラリ

Math Operations

説明

Divide ブロックと Product ブロックは Product of Elements ブロックのバリアントです。

  • Divide ブロックについては、Divide を参照してください。

  • Product ブロックについては、Product を参照してください。

Product of Elements ブロックは、1 つのスカラー、ベクトル、または行列を入力します。ブロックを使用して以下のことを行うことができます。

  • スカラー入力を変化させずにコピーする

  • スカラー入力の逆数 (1 を入力スカラーで除算)

  • すべての要素を乗算するか、要素の連続した逆数をとることで、ベクトルまたは行列をスカラーに変換

  • 各行または列の要素を乗算するか、各行または列の要素の連続した逆数をとることで、行列をベクトルに変換

Product of Elements ブロックは、機能的には、予め設定された 2 つのパラメーター値をもつ Product ブロックです。

  • 乗算: 要素単位(.*)

  • 入力数: *

上記のパラメーターのいずれかに既定値以外の値を設定すると、Product ブロックまたは Divide ブロックと機能的に等価になるように Product of Elements ブロックを変更できます。詳細は、これら 2 つのブロックのドキュメンテーションを参照してください。

アルゴリズム

Product of Elements ブロックは、次のアルゴリズムを使用して、浮動小数点、組み込み整数、および固定小数点データ型の入力に対して要素単位演算を実行します。

入力要素単位演算アルゴリズム

実数スカラー、u

乗算y = u
除算y = 1/u

要素 u1, u2, u3, ..., uN をもつ実数ベクトルまたは行列

乗算y = u1*u2*u3*...*uN
除算y = ((((1/u1)/u2)/u3).../uN)

複素数スカラー、u

乗算y = u
除算y = 1/u

要素 u1, u2, u3, ..., uN をもつ複素数ベクトルまたは行列

乗算y = u1*u2*u3*...*uN
除算y = ((((1/u1)/u2)/u3).../uN)

要素単位の乗算または除算用に指定された次元が行列の行または列である場合、このアルゴリズムはその行または列に適用されます。たとえば、以下のモデルを考えます。

一番上の Product of Elements ブロックは、4 つの要素の連続した逆数をとることで、行列入力をスカラーに変換します。

  • y = ((((1/2+i)/3)/4-i)/5)

一番下の Product of Elements ブロックは、2 二番目の次元に沿って連続した逆数をとることで、行列入力をベクトルに変換します。

  • y(1) = ((1/2+i)/3)

  • y(2) = ((1/4-i)/5)

パラメーターとダイアログ ボックス

入力数

ブロックの 2 つのプロパティを制御します。

  • ブロックの入力端子の数

  • 各入力が出力されるときに乗算されるかまたは除算されるか

設定

既定の設定: *

  • 1 または *

    • スカラー入力を変化させずにコピーする

    • ベクトルの要素同士を乗算して、ベクトル入力をスカラーに変換

    • [乗算範囲] パラメーターに基づいて行列の要素を乗算して、行列入力をスカラーまたはベクトルに変換

    詳細は、アルゴリズムを参照してください。

  • /

    • スカラー入力の逆数を出力する

    • ベクトルの要素の連続した逆数をとって、ベクトル入力をスカラーに変換

    • [乗算範囲] パラメーターに基づいて行列の要素の連続した逆数をとって、行列入力をスカラーまたはベクトルに変換

    詳細は、アルゴリズムを参照してください。

  • 整数値 > 1

    入力数は整数値で指定されます。[乗算] パラメーターで指定される要素単位モードまたは行列モードにより、ブロックは乗算ブロックとなり、入力が乗算されます。詳細は、Product ドキュメンテーションの要素単位モードおよび行列モードを参照してください。

  • 2 つ以上の */ から成る単純文字列

    文字列の長さで与えられる入力数をもちます。ブロックは乗算または除算ブロックとなり、* 文字に該当するそれぞれの入力を乗算して出力します。/ に対応する各入力は除算され、出力されます。演算は、[乗算] パラメーターで指定されるように、要素単位モードまたは行列モードで行われます。詳細は、Product ブロック リファレンス ページの要素単位モードおよび行列モードを参照してください。

依存関係

[入力数] として * を設定し、[乗算] として [要素単位(.*)] を選択すると、以下の [乗算範囲] パラメーターが有効になります。

コマンド ライン情報

ブロック固有のパラメーターを参照してください。

乗算

Product ブロックが要素単位モードまたは行列モードで動作するかを指定します。

設定

既定の設定: [要素単位(.*)]

[要素単位(.*)]

要素単位モードで動作します。

[行列 (*)]

行列モードで動作します。

依存関係

[要素単位(.*)] を選択し、[入力数]* に設定すると、以下のパラメーターが有効になります。

  • 乗算範囲

コマンド ライン情報

ブロック固有のパラメーターを参照してください。

乗算範囲

行列入力の乗算に影響します。

設定

既定の設定: すべての次元

すべての次元

[入力数] の値に基づいて行列のすべての要素の積、またはそれらの逆行列の積であるスカラーを出力します。

指定した次元

[次元] パラメーターの値に基づいて構成でベクトルを出力します。

依存関係

  • [乗算] として [要素単位(.*)] を選択し、[入力数]*1、または / に設定してこのパラメーターを有効にします。

  • このパラメーターを 指定した次元 に設定すると、[次元] パラメーターが有効になります。

コマンド ライン情報

ブロック固有のパラメーターを参照してください。

次元

行列入力の乗算に影響します。

設定

既定の設定: 1

最小値: 1

最大値: 2

1

入力行列の各列の要素を含むベクトルを出力します。

2

入力行列の各行の要素を含むベクトルを出力します。

ヒント

出力ベクトルの各要素は、[入力数] の値に基づいて入力行列の対応する列または行のすべての要素の積、あるいはこれらの要素の逆の積を含みます。

  • 1 または *

    列または行の要素の値の乗算

  • /

    列または行の要素の逆の乗算

依存関係

[乗算範囲] として 指定した次元 を選択してこのパラメーターを有効にします。

コマンド ライン情報

ブロック固有のパラメーターを参照してください。

サンプル時間

すべての入力が同じデータ型をもつ

すべての入力が同じデータ型をもつようにします。

設定

既定の設定: オフ

オン

すべての入力が同じデータ型をもつようにします。

オフ

すべての入力が同じデータ型をもつ必要はありません。

コマンド ライン情報

ブロック固有のパラメーターを参照してください。

出力の最小値

Simulink® がチェックする出力範囲の下限値。

設定

既定の設定: [] (指定なし)

有限で実数の double のスカラー値としてこの値を指定します。

Simulink は、最小値を使って以下を行います。

    メモ:   [出力の最小値] により、実際の出力信号が飽和する (またはクリップされる) ことはありません。代わりに、Saturation ブロックを使用してください。

コマンド ライン情報

パラメーター: OutMin
タイプ: 文字列
値: '[ ]'
既定の設定: '[ ]'

出力の最大値

Simulink がチェックする出力範囲の上限値。

設定

既定の設定: [] (指定なし)

有限で実数の double のスカラー値としてこの値を指定します。

Simulink は、最大値を使って以下を行います。

    メモ:   [出力の最大値] により、実際の出力信号が飽和する (またはクリップされる) ことはありません。代わりに、Saturation ブロックを使用してください。

コマンド ライン情報

パラメーター: OutMax
タイプ: 文字列
値: '[ ]'
既定の設定: '[ ]'

出力データ型

出力データ型を指定します。

設定

既定の設定: 継承: 内部ルールによる継承

継承: 内部ルールによる継承

Simulink は、組み込みターゲット ハードウェアのプロパティを考慮しつつ、数値の精度、パフォーマンス、生成コードのサイズのバランスが取れるように、データ型を選択します。組み込みターゲット ハードウェアの設定を変更すると、内部ルールにより選択されるデータ型が変更される可能性があります。コードの効率と数値の精度が、ソフトウェアにより同時に最適化されるとは限りません。内部ルールが、数値精度またはパフォーマンスに対する要求を満たさない場合は、以下のいずれかを行ってください。

  • 出力データ型を明示的に指定する。

  • 単に 継承: 1 番目の入力と同じ を選択します。

  • fixdt(1,32,16) のように既定のデータ型を明示的に指定し、固定小数点ツールを使用してモデルにデータ型を推奨する。詳細は、fxptdlg を参照してください。

  • 独自の継承ルールを指定するには、継承: 逆伝播による継承 を使用し、Data Type Propagation ブロックを使用します。このブロックの使い方は、Signal Attributes ライブラリ の Data Type Propagation Examples ブロックを参照してください。

継承: 逆伝播による継承

駆動ブロックのデータ型を使用します。

継承: 1 番目の入力と同じ

1 番目の入力信号のデータ型を使用します。

double

出力データ型は double です。

single

出力データ型は single です。

int8

出力データ型は int8 です。

uint8

出力データ型は uint8 です。

int16

出力データ型は int16 です。

uint16

出力データ型は uint16 です。

int32

出力データ型は int32 です。

uint32

出力データ型は uint32 です。

fixdt(1,16,0)

出力データ型は固定小数点 fixdt(1,16,0) です。

fixdt(1,16,2^0,0)

出力データ型は固定小数点 fixdt(1,16,2^0,0) です。

<data type expression>

データ型オブジェクトを使用します。たとえば、Simulink.NumericType などです。

コマンド ライン情報

「ブロック固有のパラメーター」を参照してください。

参考

詳細は、「信号のデータ型の制御」を参照してください。

データ型アシスタントを表示

[データ型アシスタント] を表示します。

設定

[データ型アシスタント] を使用すると、[出力データ型] パラメーターを設定できます。

詳細は、「信号のデータ型の制御」を参照してください。

モード

指定するデータのカテゴリを選択します。

設定

既定の設定: 継承

継承

データ型の規則の継承。[継承] を選択すると、右側にある 2 番目のメニュー/テキスト ボックスが有効になります。次の選択肢からいずれかを選択します。

  • Inherit via internal rule (既定の設定)

  • Inherit via back propagation

  • Same as first input

組み込み

組み込みのデータ型。[組み込み] を選択すると、右側にある 2 番目のメニュー/テキスト ボックスが有効になります。次の選択肢からいずれかを選択します。

  • double (既定の設定)

  • single

  • int8

  • uint8

  • int16

  • uint16

  • int32

  • uint32

固定小数点

固定小数点データ型。

データ型を評価する式。[] を選択すると、右側から 2 番目のメニュー/テキスト ボックスが有効になります。そこに式を入力することができます。

依存関係

[データ型アシスタントを表示] ボタンをクリックすると、このパラメーターが有効になります。

コマンド ライン情報

「ブロック固有のパラメーター」を参照してください。

参考

「データ型アシスタントを利用したデータ型の指定」を参照してください。

データ型のオーバーライド

この信号のデータ型オーバーライド モードを指定します。

設定

既定の設定: 継承

継承

コンテキストからデータ型オーバーライド設定を継承します。コンテキストとはブロックのことで、信号を使用している Simulink の Simulink.Signal オブジェクトまたは Stateflow® チャートです。

[オフ]

コンテキストのデータ型オーバーライド設定を無視し、信号に対して指定された固定小数点データ型を使用します。

ヒント

個々のデータ型に対してデータ型オーバーライドをオフにする機能により、データ型オーバーライドを適用する際に、モデル内のデータ型をさらに効果的に制御できます。たとえば、このオプションを使用すると、データ型オーバーライド設定にかかわらず、データ型が下流ブロックの要件を満たすことを確認できます。

依存関係

このパラメーターは、[モード]組み込み または 固定小数点 の場合にのみ表示されます。

符号付き/なし

固定小数点データを符号付きにするか、符号なしにするかを指定します。

設定

既定の設定: 符号付き

符号付き

符号付き固定小数点データを指定します。

符号なし

符号なし固定小数点データを指定します。

依存関係

[モード]固定小数点を選択すると、このパラメーターが有効になります。

参考

詳細は、「固定小数点データ型の指定」を参照してください。

語長

量子化された整数をもつ語のビット サイズを指定します。

設定

既定の設定: 16

最小値: 0

最大値: 32

依存関係

[モード]固定小数点を選択すると、このパラメーターが有効になります。

参考

詳細は、「固定小数点データ型の指定」を参照してください。

スケーリング

オーバーフローを避け、量子化誤差を最小限に抑えるための固定小数点データのスケーリング方法を指定します。

設定

既定の設定: 最高精度

2 進小数点

2 進小数点の位置を指定します。

勾配とバイアス

勾配とバイアスを入力します。

最高精度

最高精度値を指定します。

依存関係

[モード]固定小数点を選択すると、このパラメーターが有効になります。

[2 進小数点] を選択すると、以下が有効になります。

  • 小数部の長さ

  • 最高精度のスケーリングを計算

勾配とバイアス を選択すると、以下が有効になります。

  • 勾配

  • バイアス

  • 最高精度のスケーリングを計算

参考

詳細は、「固定小数点データ型の指定」を参照してください。

小数部の長さ

固定小数点データ型の小数部の長さを指定します。

設定

既定の設定: 0

2 進小数点は正または負の整数になります。

依存関係

[スケーリング][2 進小数点] を選択すると、このパラメーターが有効になります。

参考

詳細は、「固定小数点データ型の指定」を参照してください。

勾配

固定小数点データ型の勾配を指定します。

設定

既定の設定: 2^0

任意の正の実数を指定します。

依存関係

[スケーリング]勾配とバイアス を選択すると、このパラメーターが有効になります。

参考

詳細は、「固定小数点データ型の指定」を参照してください。

バイアス

固定小数点データ型のバイアスを指定します。

設定

既定の設定: 0

任意の実数を指定します。

依存関係

[スケーリング]勾配とバイアス を選択すると、このパラメーターが有効になります。

参考

詳細は、「固定小数点データ型の指定」を参照してください。

固定小数点ツールによる変更に対して出力データ型の設定をロックする

固定小数点ツールや固定小数点アドバイザーによる変更を避けるために、このブロックの出力データ型の設定をロックします。

設定

既定の設定: オフ

オン

このブロックの出力データ型設定をロックします。

オフ

固定小数点ツールや固定小数点アドバイザーがこのブロックの出力データ型の設定を変更できます。

コマンド ライン情報

パラメーター: LockScale
タイプ: 文字列
値: 'off' | 'on'
既定の設定: 'off'

参考

詳細は、「[出力データ型の設定をロックする] の使用」を参照してください。

整数丸めモード

固定小数点演算の丸めモードを指定します。

設定

既定の設定: 負方向

正方向

正の無限大方向に正負の値を丸めます。MATLAB® 関数 ceil と等価です。

最も近い偶数方向

最も近い表現可能な値に数値を丸めます。同順位が発生した場合は、最も近い偶数の整数に丸めます。Fixed-Point Designer™ 関数 convergent と等価です。

負方向

負の無限大方向に正負の値を丸めます。MATLAB 関数 floor と等価です。

最も近い正の整数方向

最も近い表現可能な値に数値を丸めます。同順位が発生した場合は、正の無限大方向に丸めます。Fixed-Point Designer 関数 nearest と等価です。

最も近い整数方向

最も近い表現可能な値に数値を丸めます。同順位が発生した場合は、正の数値を正の無限大方向、負の数値を負の無限大方向に丸めます。Fixed-Point Designer 関数 round と等価です。

最も簡潔

負方向の丸めとゼロ方向の丸めのいずれかを選択し、できるだけ効率の高い丸めコードを生成します。

ゼロ方向

ゼロ方向に数値を丸めます。MATLAB 関数 fix と等価です。

コマンド ライン情報

「ブロック固有のパラメーター」を参照してください。

参考

詳細は、「丸め」を参照してください。

整数オーバーフローで飽和

オーバーフローで飽和するかどうかを指定します。

設定

既定の設定: オフ

オン

オーバーフローは、データ型が表現できる最小値または最大値のいずれかに飽和します。

たとえば、符号付き 8 ビット整数に関連付けられたオーバーフローは、-128 または 127 に飽和することができます。

オフ

オーバーフローは、データ型によって表現される適切な値にラップされます。

たとえば、数 130 は符号付き 8 ビット整数 1 つに収まりきらないので、-126 にラップされます。

ヒント

  • モデルでオーバーフローが発生する可能性があり、生成コードに飽和保護を明示的に組み込む必要があるときには、このチェック ボックスをオンにすることを検討してください。

  • 生成コードの効率を最適化する場合には、このチェック ボックスをオフにすることを検討してください。

    このチェック ボックスをオフにすると、ブロックが範囲外の信号を処理する方法を指定しすぎないようにする点でも役立ちます。詳細は、「信号範囲のエラーのチェック」を参照してください。

  • このチェック ボックスをオンにすると、飽和は出力や結果だけでなく、このブロックの内部演算すべてに適用されます。

  • 通常、オーバーフローが可能ではない場合は、コード生成プロセスで検出されます。この場合、コード ジェネレーターでは飽和コードは生成されません。

コマンド ライン情報

パラメーター: SaturateOnIntegerOverflow
タイプ: 文字列
値: 'off' | 'on'
既定の設定: 'off'

次の表は、ブロックの既定のパラメーター値を使って、サンプル入力に対する、Product of Elements ブロックの出力を示します。

パラメーター値

乗算: 要素単位(.*)

入力数: *

乗算: 要素単位(.*)

入力数: /

乗算: 要素単位(.*)

入力数: *

乗算: 要素単位(.*)

入力数: *

乗算範囲: すべての次元

乗算: 要素単位(.*)

入力数: *

乗算範囲: 指定した次元

次元: 1

乗算: 要素単位(.*)

入力数: /

乗算範囲: 指定した次元

次元: 2

特性

データ型

double | single | boolean | 整数 | 固定小数点

多次元信号

あり

可変サイズの信号

あり

コード生成

あり

R2006a より前に導入

この情報は役に立ちましたか?