Main Content

## fi Object Properties

### Data Properties

The data properties of a `fi` object are always writable.

• `bin` — Stored integer value of a `fi` object in binary

• `data` — Numerical real-world value of a `fi` object

• `dec` — Stored integer value of a `fi` object in decimal

• `double` — Real-world value of a `fi` object, stored as a MATLAB® `double` data type

• `hex` — Stored integer value of a `fi` object in hexadecimal

• `int` — Stored integer value of a `fi` object, stored in a built-in MATLAB integer data type

• `oct` — Stored integer value of a `fi` object in octal

To learn more about these properties, see fi Object Properties in the Fixed-Point Designer™ Reference.

### fimath Properties

In general, the `fimath` properties associated with `fi` objects depend on how you create the `fi` object:

• When you specify one or more `fimath` object properties in the `fi` constructor, the resulting `fi` object has a local `fimath` object.

• When you do not specify any `fimath` object properties in the `fi` constructor, the resulting `fi` object has no local `fimath`.

To determine whether a `fi` object has a local `fimath` object, use the `isfimathlocal` function.

The `fimath` properties associated with `fi` objects determine how fixed-point arithmetic is performed. These `fimath` properties can come from a local `fimath` object or from default `fimath` property values. To learn more about `fimath` objects in fixed-point arithmetic, see fimath Rules for Fixed-Point Arithmetic.

The following `fimath` properties are, by transitivity, also properties of the `fi` object. You can set these properties for individual `fi` objects. The following `fimath` properties are always writable.

• `CastBeforeSum` — Whether both operands are cast to the sum data type before addition

Note

This property is hidden when the `SumMode` is set to `FullPrecision`.

• `MaxProductWordLength` — Maximum allowable word length for the product data type

• `MaxSumWordLength` — Maximum allowable word length for the sum data type

• `OverflowAction` — Action to take on overflow

• `ProductBias` — Bias of the product data type

• `ProductFixedExponent` — Fixed exponent of the product data type

• `ProductFractionLength` — Fraction length, in bits, of the product data type

• `ProductMode` — Defines how the product data type is determined

• `ProductSlope` — Slope of the product data type

• `ProductSlopeAdjustmentFactor` — Slope adjustment factor of the product data type

• `ProductWordLength` — Word length, in bits, of the product data type

• `RoundingMethod` — Rounding method

• `SumBias` — Bias of the sum data type

• `SumFixedExponent` — Fixed exponent of the sum data type

• `SumFractionLength` — Fraction length, in bits, of the sum data type

• `SumMode` — Defines how the sum data type is determined

• `SumSlope` — Slope of the sum data type

• `SumSlopeAdjustmentFactor` — Slope adjustment factor of the sum data type

• `SumWordLength` — The word length, in bits, of the sum data type

For more information, see fimath Object Properties.

### numerictype Properties

When you create a `fi` object, a `numerictype` object is also automatically created as a property of the `fi` object:

`numerictype` — Object containing all the data type information of a `fi` object, Simulink® signal, or model parameter

The following `numerictype` properties are, by transitivity, also properties of a `fi` object. The following properties of the `numerictype` object become read only after you create the `fi` object. However, you can create a copy of a `fi` object with new values specified for the `numerictype` properties:

• `Bias` — Bias of a `fi` object

• `DataType` — Data type category associated with a `fi` object

• `DataTypeMode` — Data type and scaling mode of a `fi` object

• `FixedExponent` — Fixed-point exponent associated with a `fi` object

• `FractionLength` — Fraction length of the stored integer value of a `fi` object in bits

• `Scaling` — Fixed-point scaling mode of a `fi` object

• `Signed` — Whether a `fi` object is signed or unsigned

• `Signedness` — Whether a `fi` object is signed or unsigned

Note

`numerictype` objects can have a `Signedness` of `Auto`, but all `fi` objects must be `Signed` or `Unsigned`. If a `numerictype` object with `Auto` `Signedness` is used to create a `fi` object, the `Signedness` property of the `fi` object automatically defaults to `Signed`.

• `Slope` — Slope associated with a `fi` object

• `SlopeAdjustmentFactor` — Slope adjustment associated with a `fi` object

• `WordLength` — Word length of the stored integer value of a `fi` object in bits

For more information, see numerictype Object Properties.

There are two ways to specify properties for `fi` objects in Fixed-Point Designer software. Refer to the following sections:

### Setting fi Object Properties

You can set `fi` object properties in two ways:

• Setting the properties when you create the object

• Using direct property referencing

#### Setting Fixed-Point Properties at Object Creation

You can set properties of `fi` objects at the time of object creation by including properties after the arguments of the `fi` constructor function. For example, to set the overflow action to `Wrap` and the rounding method to `Convergent`,

`a = fi(pi,'OverflowAction','Wrap','RoundingMethod','Convergent')`
```a = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13 RoundingMethod: Convergent OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision```

To set the stored integer value of a `fi` object, use the parameter/value pair for the `'int'` property when you create the object. For example, create a signed `fi` object with a stored integer value of 4, 16-bit word length, and 15-bit fraction length.

`x = fi(0,1,16,15,'int',4);`

Verify that the `fi` object has the expected integer setting.

`x.int`
```ans = int16 4```

#### Using Direct Property Referencing with fi

You can reference directly into a property for setting or retrieving `fi` object property values using MATLAB structure-like referencing. You do so by using a period to index into a property by name.

For example, to get the `WordLength` of `a`,

`a.WordLength`
```ans = 16```

To set the `OverflowAction` of `a`,

`a.OverflowAction = 'Wrap'`
```a = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13 RoundingMethod: Convergent OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision```

If you have a `fi` object `b` with a local `fimath` object, you can remove the local `fimath` object and force `b` to use default `fimath` values:

`b = fi(pi,1,'RoundingMethod','Floor')`
```b = 3.1415 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13 RoundingMethod: Floor OverflowAction: Saturate ProductMode: FullPrecision SumMode: FullPrecision ```
```b.fimath = [] ```
```b = 3.1415 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13 ```
```isfimathlocal(b) ```
```ans = logical 0```

## Support Get trial now