mpy
使用 fimath
对象将两个对象相乘
语法
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
也可以是双精度数、单精度数或整数。
示例
在此示例中,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 Rules for Fixed-Point Arithmetic。
扩展功能
版本历史记录
在 R2006a 之前推出