Умножить два объекта используя 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™ ".