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