Только методы округления и действия переполнения, установленные до операции с fi
объекты влияют на результат этих операций. Как только вы создаете fi
объект в MATLAB®изменение параметров округления или переполнения не влияет на его значение. Для примера рассмотрим fi
объекты a
и b
:
p = fipref('NumberDisplay', 'RealWorldValue',... 'NumericTypeDisplay', 'none', 'FimathDisplay', 'none'); T = numerictype('WordLength',8,'FractionLength',7); F = fimath('RoundingMethod','Floor','OverflowAction','Wrap'); a = fi(1,T,F)
a = -1
b = fi(1,T)
b = 0.9922
Потому что вы создаете a
с fimath
F объекта
который имеет OverflowAction
установлено на Wrap
, значение a
переносы в -1. Наоборот, потому что вы создаете b
с параметром по умолчанию OverflowAction
значение Saturate
, его значение достигает 0,9922.
Теперь назначьте fimath
F объекта
на b
:
b.fimath = F
b = 0.9922
Потому что операция назначения и соответствующее переполнение и насыщение произошли, когда вы создали b
, его значение не меняется, когда вы присваиваете ему новое fimath
F объекта
.
Примечание
fi
объекты без локального fimath и созданные из значения с плавающей точкой, всегда создаются с помощью RoundingMethod
от Nearest
и OverflowAction
от Saturate
. Чтобы создать fi
объекты с различными RoundingMethod
и OverflowAction
свойства, задайте требуемую RoundingMethod
и OverflowAction
свойства в fi
конструктор.
Для получения дополнительной информации о fimath
объект и его свойства, см. «Свойства объекта fimath»