Вычтите два объекта с помощью объекта fimath
c = sub(F,a,b)
c = sub(F,a,b) вычитает возражает a и b с помощью объекта fimath F. Это полезно в случаях когда это необходимо, чтобы заменить объекты fimath a и b, или если свойства fimath, сопоставленные с a и b, отличаются. Объект c вывода fi не имеет никакого локального fimath.
a и b должны и быть объектами fi и должны иметь те же размерности, если каждый не скаляр. Если или a или b являются скаляром, то c имеет размерности нескалярного объекта.
В этом примере c является 32-битным различием a и b с дробной длиной 16.
a = fi(pi); b = fi(exp(1)); F = fimath('SumMode','SpecifyPrecision',... 'SumWordLength',32,'SumFractionLength',16); c = sub(F, a, b) c = 0.4233 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 32 FractionLength: 16
c = sub(F,a,b) подобен
a.fimath = F;
b.fimath = F;
c = a - b
c =
0.4233
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 32
FractionLength: 16
RoundingMethod: Nearest
OverflowAction: Saturate
ProductMode: FullPrecision
SumMode: SpecifyPrecision
SumWordLength: 32
SumFractionLength: 16
CastBeforeSum: true
но не идентичный. Когда вы используете sub, свойства fimath a и b не изменяются, и объект c вывода fi не имеет никакого локального fimath. Когда вы используете синтаксис c = a - b, где a и b имеют их собственные объекты fimath, объект c вывода fi присвоен тот же объект fimath как входные параметры a и b. См. Правила fimath для Вычислений с фиксированной точкой в Руководстве пользователя Fixed-Point Designer™ для получения дополнительной информации.