Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

mpy

使用 fimath 对象将两个对象相乘

语法

c = mpy(F,a,b)

说明

c = mpy(F,a,b) 使用 fimath 对象 Fab 执行按元素相乘。当您要覆盖 abfimath 对象时,或当与 ab 关联的 fimath 属性不同时,这很有帮助。输出 fi 对象 c 没有局部 fimath。

ab 都可以是具有相同维度的 fi 对象,除非其中一个是标量。如果 ab 是标量,则 c 具有非标量对象的维度。ab 也可以是双精度数、单精度数或整数。

示例

在此示例中,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 Rules for Fixed-Point Arithmetic

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

| | | | | | | |