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