# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English verison of the page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

# sfi

Construct signed fixed-point numeric object

## Syntax

`a = sfia = sfi(v)a = sfi(v,w)a = sfi(v,w,f)a = sfi(v,w,slope,bias)a = sfi(v,w,slopeadjustmentfactor,fixedexponent,bias)`

## Description

You can use the `sfi` constructor function in the following ways:

• `a = sfi` is the default constructor and returns a signed `fi` object with no value, 16-bit word length, and 15-bit fraction length.

• `a = sfi(v)` returns a signed fixed-point object with value `v`, 16-bit word length, and best-precision fraction length.

• `a = sfi(v,w)` returns a signed fixed-point object with value `v`, word length `w`, and best-precision fraction length.

• `a = sfi(v,w,f)` returns a signed fixed-point object with value `v`, word length `w`, and fraction length `f`.

• `a = sfi(v,w,slope,bias)` returns a signed fixed-point object with value `v`, word length `w`, `slope`, and `bias`.

• `a = sfi(v,w,slopeadjustmentfactor,fixedexponent,bias)` returns a signed fixed-point object with value `v`, word length `w`, `slopeadjustmentfactor`, `fixedexponent`, and `bias`.

`fi` objects created by the `sfi` constructor function have the following general types of properties:

These properties are described in detail in fi Object Properties in the Properties Reference.

 Note:   `fi` objects created by the `sfi` constructor function have no local fimath.

### 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`

• `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. You can also use `int8`, `int16`, `int32`, `int64`, `uint8`, `uint16`, `uint32`, and `uint64` to get the stored integer value of a `fi` object in these formats

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

These properties are described in detail in fi Object Properties.

### fimath Properties

When you create a `fi` object with the `sfi` constructor function, that `fi` object does not have a local `fimath` object. You can attach a `fimath` object to that `fi` object if you do not want to use the default fimath settings. For more information, see fimath Object Construction in the Fixed-Point Designer™ documentation.

• `fimath` — fixed-point math object

The following `fimath` properties are always writable and, by transitivity, are also properties of a `fi` object.

• `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`.
• `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

These properties are described in detail in 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 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

• `SlopeAdjustmentFactor` — Slope adjustment 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

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

For further details on these properties, see numerictype Object Properties.

## Examples

 Note   For information about the display format of `fi` objects, refer to Display Settings.For examples of casting, see Cast fi Objects.

### Example 1

For example, the following creates a signed `fi` object with a value of `pi`, a word length of 8 bits, and a fraction length of 3 bits:

```a = sfi(pi,8,3) a = 3.1250 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 8 FractionLength: 3```

Default `fimath` properties are associated with `a`. When a `fi` object does not have a local `fimath` object, no `fimath` object properties are displayed in its output. To determine whether a `fi` object has a local `fimath` object, use the `isfimathlocal` function.

```isfimathlocal(a) ans = 0```

A returned value of `0` means the `fi` object does not have a local `fimath` object. When the `isfimathlocal` function returns a `1`, the `fi` object has a local `fimath` object.

### Example 2

The value `v` can also be an array:

```a = sfi((magic(3)/10),16,12) a = 0.8000 0.1001 0.6001 0.3000 0.5000 0.7000 0.3999 0.8999 0.2000 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 12```

### Example 3

If you omit the argument `f`, it is set automatically to the best precision possible:

```a = sfi(pi,8) a = 3.1563 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 8 FractionLength: 5```

### Example 4

If you omit `w` and `f`, they are set automatically to 16 bits and the best precision possible, respectively:

```a = sfi(pi) a = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13```