Only rounding methods and overflow actions set prior to an operation with fi objects affect the outcome of those operations. Once you create a fi object in MATLAB®, changing its rounding or overflow settings does not affect its value. For example, consider the fi objects a and 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
Because you create a with a fimath object F that has OverflowAction set to Wrap, the value of a wraps to -1. Conversely, because you create b with the default OverflowAction value of Saturate, its value saturates to 0.9922.
Now, assign the fimath object F to b:
b.fimath = F b = 0.9922
Because the assignment operation and corresponding overflow and saturation happened when you created b, its value does not change when you assign it the new fimath object F.
Note: fi objects with no local fimath and created from a floating-point value always get constructed with a RoundingMethod of Nearest and an OverflowAction of Saturate. To construct fi objects with different RoundingMethod and OverflowAction properties, specify the desired RoundingMethod and OverflowAction properties in the fi constructor.