Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

mpy

fimath オブジェクトを使用した 2 つのオブジェクトの乗算

構文

c = mpy(F,a,b)

説明

c = mpy(F,a,b) は、fimath オブジェクト F を使用して ab に対して要素単位の乗算を実行します。abfimath オブジェクトをオーバーライドする場合や、ab に関連付けられる fimath プロパティが異なる場合に役に立ちます。出力 fi オブジェクト c にはローカル fimath がありません。

ab は、一方がスカラーでない場合、同じ次元をもつ fi オブジェクトを指定することができます。ab のいずれかがスカラーの場合、c はスカラーでない方のオブジェクトの次元になります。a および b も double 、single、整数に指定することができます。

以下の例では、cab の 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 を使用すると、abfimath プロパティは変更されません。また、出力 fi オブジェクト c にはローカル fimath がありません。構文 c = a .* b を使用する場合 (ab は独自の fimath オブジェクトをもちます)、出力の fi オブジェクト c は、入力の ab と同じ fimath オブジェクトに割り当てられます。詳細については、『Fixed-Point Designer™ ユーザー ガイド』の固定小数点演算用の fimath のルールを参照してください。

拡張機能

バージョン履歴

R2006a より前に導入