Умножьте два объекта с помощью 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™ для получения дополнительной информации.