Умножение двух объектов с помощью fimath объект
c = mpy(F,a,b)
c = mpy(F,a,b) выполняет элементарное умножение на a и b использование fimath объект F. Это полезно в тех случаях, когда требуется переопределить fimath объекты a и b, или если fimath свойства, связанные с a и b отличаются друг от друга. Продукция fi объект c не имеет локального fimath.
a и b оба могут быть fi объекты с одинаковыми размерами, если один из них не является скаляром. Если либо a или b является скалярным, то c имеет размеры нескалярного объекта. a и b также могут быть двойными, одиночными или целыми числами.
В этом примере: c - 40-разрядное произведение a и b с длиной фракции 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, fimath свойства a и b не изменяются, и выходные данные fi объект c не имеет локального fimath. При использовании синтаксиса c = a .* b, где a и b имеют свои собственные fimath объекты, выходные данные fi объект c получает то же самое fimath объект в качестве входных данных a и b. Дополнительные сведения см. в разделе Правила fimath для арифметики фиксированных точек в Руководстве пользователя Fixed-Point Designer™.