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