fimath
设置定点数学设置
说明
F = fimath
使用默认 fimath
属性设置创建一个 fimath
对象。
F = fimath(
通过使用一个或多个名称-值对组参量来指定 Name,Value
)fimath
对象的属性。所有未在构造函数中指定的属性都使用默认值。
示例
创建默认 fimath 对象
此示例说明如何使用默认属性设置创建 fimath
对象。
F = fimath
F = RoundingMethod: Nearest OverflowAction: Saturate ProductMode: FullPrecision SumMode: FullPrecision
设置 fimath 对象的属性
使用名称-值对组在创建对象时设置 fimath
对象的属性。例如,将溢出操作设置为饱和,将舍入方法设置为收敛。
F = fimath('OverflowAction','Saturate','RoundingMethod','Convergent')
F = RoundingMethod: Convergent OverflowAction: Saturate ProductMode: FullPrecision SumMode: FullPrecision
输入参数
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量后,但参量对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: F = fimath('OverflowAction','Saturate','RoundingMethod','Floor')
CastBeforeSum
— 在加法运算之前,是否将两个操作数都转换为加和数据类型
true
或 1
(默认) | false
或 0
在加法运算之前是否将两个操作数都转换为加和数据类型,指定为数值或逻辑值 1
(true
) 或 0
(false
)。
注意
当 SumMode
设置为 FullPrecision
时,此属性隐藏。
示例: F = fimath('CastBeforeSum',true)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
MaxProductWordLength
— 乘积数据类型允许的最大字长
65535
(默认) | 正整数
乘积数据类型允许的最大字长,指定为正整数。
示例: F = fimath('MaxProductWordLength',16)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
MaxSumWordLength
— 加和数据类型允许的最大字长
65535 (默认) | 正整数
加和数据类型允许的最大字长,指定为正整数。
示例: F = fimath('MaxSumWordLength',16)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
OverflowAction
— 对溢出采取的操作
'Saturate'
(默认) | 'Wrap'
对溢出采取的操作,指定为以下值之一:
'Saturate'
- 溢出时饱和处理为定点范围的最大或最小值。'Wrap'
- 溢出时绕回。此模式也称为 2 的补码溢出。
示例: F = fimath('OverflowAction','Wrap')
数据类型: char
ProductBias
— 乘积数据类型的偏置
0
(默认) | 浮点数
乘积数据类型的偏置,指定为浮点数。
示例: F = fimath('ProductBias',1)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
ProductFixedExponent
— 乘积数据类型的固定指数
-30
(默认) | 非零整数
乘积数据类型的固定指数,指定为非零整数。
注意
ProductFractionLength
是 ProductFixedExponent
的负数。更改一个属性会更改另一个属性。
示例: F = fimath('ProductFixedExponent',-20)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
ProductFractionLength
— 乘积数据类型的小数长度
30
(默认) | 非零整数
乘积数据类型的小数长度,以位为单位,指定为非零整数。
注意
ProductFractionLength
是 ProductFixedExponent
的负数。更改一个属性会更改另一个属性。
示例: F = fimath('ProductFractionLength',20)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
ProductMode
— 如何确定乘积数据类型
'FullPrecision'
(默认) | 'KeepLSB'
| 'KeepMSB'
| 'SpecifyPrecision'
如何确定乘积数据类型,指定为以下值之一:
'FullPrecision'
- 保留结果的全精度。'KeepLSB'
- 保留最低有效位。指定乘积字长。小数长度设置为保持乘积的最低有效位。'KeepMSB'
- 保留最高有效位。指定乘积字长。小数长度设置为保持乘积的最高有效位。'SpecifyPrecision'
- 指定乘积的字长和小数长度或乘积的斜率和偏置。
示例: F = fimath('ProductMode','KeepLSB')
数据类型: char
ProductSlope
— 乘积数据类型的斜率
9.3132e-10
(默认) | 有限正浮点数
乘积数据类型的斜率,指定为有限正浮点数。
注意
更改其中一个属性会影响其他属性。
示例: F = fimath('ProductSlope',9.3132e-10)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
ProductSlopeAdjustmentFactor
— 乘积数据类型的斜率调整因子
1
(默认) | 大于或等于 1 且小于 2 的浮点数
乘积数据类型的斜率调整因子,指定为大于或等于 1 且小于 2 的浮点数。
注意
更改其中一个属性会影响其他属性。
示例: F = fimath('ProductSlopeAdjustmentFactor',1)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
ProductWordLength
— 乘积数据类型的字长
32
(默认) | 正整数
乘积数据类型的字长,以位为单位,指定为正整数。
示例: F = fimath('ProductWordLength',64)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
RoundingMethod
— 要使用的舍入方法
'Nearest'
(默认) | 'Ceiling'
| 'Convergent'
| 'Zero'
| 'Floor'
| 'Round'
要使用的舍入方法,指定为以下值之一:
'Nearest'
- 向最邻近值方向舍入。结值向正无穷方向舍入。'Ceiling'
- 向正无穷方向舍入。'Convergent'
- 向最邻近值方向舍入。结值舍入到最接近的偶数存储整数(偏置最小)。'Zero'
- 向零方向舍入。'Floor'
- 向负无穷方向舍入。'Round'
- 向最邻近值方向舍入。负结值向负无穷方向舍入,正结值向正无穷方向舍入。
示例: F = fimath('RoundingMethod','Convergent')
数据类型: char
SumBias
— 加和数据类型的偏置
0
(默认) | 浮点数
加和数据类型的偏置,指定为浮点数。
示例: F = fimath('SumBias',0)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
SumFixedExponent
— 加和数据类型的固定指数
-30
(默认) | 非零整数
加和数据类型的固定指数,指定为非零整数。
注意
SumFractionLength
是 SumFixedExponent
的负数。更改一个属性会更改另一个属性。
示例: F = fimath('SumFixedExponent',-20)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
SumFractionLength
— 加和数据类型的小数长度
30
(默认) | 非零整数
加和数据类型的小数长度,以位为单位,指定为非零整数。
注意
SumFractionLength
是 SumFixedExponent
的负数。更改一个属性会更改另一个属性。
示例: F = fimath('SumFractionLength',20)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
SumMode
— 如何确定加和数据类型
'FullPrecision'
(默认) | 'KeepLSB'
| 'KeepMSB'
| 'SpecifyPrecision'
如何确定加和数据类型,指定为以下值之一:
'FullPrecision'
- 保留结果的全精度。'KeepLSB'
- 保留最低有效位。指定加和数据类型的字长。小数长度设置为保持总和的最低有效位。'KeepMSB'
- 保留最高有效位。指定加和数据类型的字长。小数长度设置为保持总和的最高有效位,并且不超出必要的小数位。'SpecifyPrecision'
- 指定加和数据类型的字长和小数长度或斜率和偏置。
示例: F = fimath('SumMode','KeepLSB')
数据类型: char
SumSlope
— 加和数据类型的斜率
9.3132e-10
(默认) | 浮点数
加和数据类型的斜率,指定为浮点数。
注意
更改其中一个属性会影响其他属性。
示例: F = fimath('SumSlope',9.3132e-10)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
SumSlopeAdjustmentFactor
— 加和数据类型的斜率调整因子
1
(默认) | 大于或等于 1 且小于 2 的浮点数
加和数据类型的斜率调整因子,指定为大于或等于 1 且小于 2 的浮点数。
注意
更改其中一个属性会影响其他属性。
示例: F = fimath('SumSlopeAdjustmentFactor',1)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
SumWordLength
— 加和数据类型的字长
32
(默认) | 正整数
加和数据类型的字长,以位为单位,指定为正整数。
示例: F = fimath('SumWordLength',64)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
使用说明和限制:
从 Simulink® 进入 MATLAB® Function 模块的定点信号会被分配一个
fimath
对象。您可以在模型资源管理器的 MATLAB Function 模块对话框中定义此对象。用于在生成代码中创建
fimath
对象。如果
fimath
对象的ProductMode
属性设置为FullPrecision
以外的任何值,则ProductWordLength
和ProductFractionLength
属性必须为常量。如果
fimath
对象的SumMode
属性设置为FullPrecision
以外的任何值,则SumWordLength
和SumFractionLength
属性必须为常量。
HDL 代码生成
使用 HDL Coder™ 为 FPGA 和 ASIC 设计生成 VHDL、Verilog 和 SystemVerilog 代码。
版本历史记录
在 R2006a 之前推出R2021a: 不支持 fi
、fimath
和 numerictype
对象的不精确的属性名称
在以前的版本中,对象 fi
、fimath
和 numerictype
的不精确的属性名称会导致警告。在 R2021a 中,不再支持不精确的属性名称。请改用精确的属性名称。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)