fimath
设置定点数学设置
说明
F = fimath
使用默认 fimath
属性设置创建一个 fimath
对象。
F = fimath(
通过使用一个或多个名称-值对组参量来指定 Name,Value
)fimath
对象的属性。所有未在构造函数中指定的属性都使用默认值。
示例
此示例说明如何使用默认属性设置创建 fimath
对象。
F = fimath
F = RoundingMethod: Nearest OverflowAction: Saturate ProductMode: FullPrecision SumMode: FullPrecision
使用名称-值对组在创建对象时设置 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')
在加法运算之前是否将两个操作数都转换为加和数据类型,指定为数值或逻辑值 1
(true
) 或 0
(false
)。
注意
当 SumMode
设置为 FullPrecision
时,此属性隐藏。
示例: F = fimath('CastBeforeSum',true)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
乘积数据类型允许的最大字长,指定为正整数。
示例: F = fimath('MaxProductWordLength',16)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
加和数据类型允许的最大字长,指定为正整数。
示例: F = fimath('MaxSumWordLength',16)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
对溢出采取的操作,指定为以下值之一:
'Saturate'
- 溢出时饱和处理为定点范围的最大或最小值。'Wrap'
- 溢出时绕回。此模式也称为 2 的补码溢出。
示例: F = fimath('OverflowAction','Wrap')
数据类型: char
乘积数据类型的偏置,指定为浮点数。
示例: F = fimath('ProductBias',1)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
乘积数据类型的固定指数,指定为非零整数。
注意
ProductFractionLength
是 ProductFixedExponent
的负数。更改一个属性会更改另一个属性。
示例: F = fimath('ProductFixedExponent',-20)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
乘积数据类型的小数长度,以位为单位,指定为非零整数。
注意
ProductFractionLength
是 ProductFixedExponent
的负数。更改一个属性会更改另一个属性。
示例: F = fimath('ProductFractionLength',20)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
如何确定乘积数据类型,指定为以下值之一:
'FullPrecision'
- 保留结果的全精度。'KeepLSB'
- 保留最低有效位。指定乘积字长。小数长度设置为保持乘积的最低有效位。'KeepMSB'
- 保留最高有效位。指定乘积字长。小数长度设置为保持乘积的最高有效位。'SpecifyPrecision'
- 指定乘积的字长和小数长度或乘积的斜率和偏置。
示例: F = fimath('ProductMode','KeepLSB')
数据类型: char
乘积数据类型的斜率,指定为有限正浮点数。
注意
更改其中一个属性会影响其他属性。
示例: F = fimath('ProductSlope',9.3132e-10)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
乘积数据类型的斜率调整因子,指定为大于或等于 1 且小于 2 的浮点数。
注意
更改其中一个属性会影响其他属性。
示例: F = fimath('ProductSlopeAdjustmentFactor',1)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
乘积数据类型的字长,以位为单位,指定为正整数。
示例: F = fimath('ProductWordLength',64)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
要使用的舍入方法,指定为以下值之一:
'Nearest'
- 向最邻近值方向舍入。结值向正无穷方向舍入。'Ceiling'
- 向正无穷方向舍入。'Convergent'
- 向最邻近值方向舍入。结值舍入到最接近的偶数存储整数(偏置最小)。'Zero'
- 向零方向舍入。'Floor'
- 向负无穷方向舍入。'Round'
- 向最邻近值方向舍入。负结值向负无穷方向舍入,正结值向正无穷方向舍入。
示例: F = fimath('RoundingMethod','Convergent')
数据类型: char
加和数据类型的偏置,指定为浮点数。
示例: F = fimath('SumBias',0)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
加和数据类型的固定指数,指定为非零整数。
注意
SumFractionLength
是 SumFixedExponent
的负数。更改一个属性会更改另一个属性。
示例: F = fimath('SumFixedExponent',-20)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
加和数据类型的小数长度,以位为单位,指定为非零整数。
注意
SumFractionLength
是 SumFixedExponent
的负数。更改一个属性会更改另一个属性。
示例: F = fimath('SumFractionLength',20)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
如何确定加和数据类型,指定为以下值之一:
'FullPrecision'
- 保留结果的全精度。'KeepLSB'
- 保留最低有效位。指定加和数据类型的字长。小数长度设置为保持总和的最低有效位。'KeepMSB'
- 保留最高有效位。指定加和数据类型的字长。小数长度设置为保持总和的最高有效位,并且不超出必要的小数位。'SpecifyPrecision'
- 指定加和数据类型的字长和小数长度或斜率和偏置。
示例: F = fimath('SumMode','KeepLSB')
数据类型: char
加和数据类型的斜率,指定为浮点数。
注意
更改其中一个属性会影响其他属性。
示例: F = fimath('SumSlope',9.3132e-10)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
加和数据类型的斜率调整因子,指定为大于或等于 1 且小于 2 的浮点数。
注意
更改其中一个属性会影响其他属性。
示例: F = fimath('SumSlopeAdjustmentFactor',1)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
加和数据类型的字长,以位为单位,指定为正整数。
示例: F = fimath('SumWordLength',64)
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
扩展功能
使用说明和限制:
从 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 之前推出在以前的版本中,对象 fi
、fimath
和 numerictype
的不精确的属性名称会导致警告。在 R2021a 中,不再支持不精确的属性名称。请改用精确的属性名称。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)