このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
mpy
fimath
オブジェクトを使用した 2 つのオブジェクトの乗算
構文
c = mpy(F,a,b)
説明
c = mpy(F,a,b)
は、fimath
オブジェクト F
を使用して a
と b
に対して要素単位の乗算を実行します。a
と b
の fimath
オブジェクトをオーバーライドする場合や、a
と b
に関連付けられる fimath
プロパティが異なる場合に役に立ちます。出力 fi
オブジェクト c
にはローカル fimath がありません。
a
と b
は、一方がスカラーでない場合、同じ次元をもつ fi
オブジェクトを指定することができます。a
と b
のいずれかがスカラーの場合、c
はスカラーでない方のオブジェクトの次元になります。a
および b
も double 、single、整数に指定することができます。
例
以下の例では、c
は a
と b
の 40 ビットの積であり、小数部の長さは 30 です。
a = fi(pi); b = fi(exp(1)); F = fimath('ProductMode','SpecifyPrecision',... 'ProductWordLength',40,'ProductFractionLength',30); c = F.mpy(a, b)
c = 8.5397 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 40 FractionLength: 30
アルゴリズム
c = mpy(F,a,b)
は、次の式と等価です。
a.fimath = F; b.fimath = F; c = a .* b
c = 8.5397 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 40 FractionLength: 30 RoundingMethod: Nearest OverflowAction: Saturate ProductMode: SpecifyPrecision ProductWordLength: 40 ProductFractionLength: 30 SumMode: FullPrecision
しかし同一ではありません。mpy
を使用すると、a
と b
の fimath
プロパティは変更されません。また、出力 fi
オブジェクト c
にはローカル fimath がありません。構文 c = a .* b
を使用する場合 (a
と b
は独自の fimath
オブジェクトをもちます)、出力の fi
オブジェクト c
は、入力の a
と b
と同じ fimath
オブジェクトに割り当てられます。詳細については、『Fixed-Point Designer™ ユーザー ガイド』の固定小数点演算用の fimath のルールを参照してください。
拡張機能
バージョン履歴
R2006a より前に導入