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 = mpy(F, 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 より前に導入