Только методы округления и действия переполнения, установленные до операции с 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»