divide
将两个 fi 对象相除
说明
示例
此示例说明如何控制 divide 函数的精度。
创建一个无符号 fi 对象,其字长为 80 位,采用 2^-83 定标,将表示形式的前导 1 放入最高有效位。用值 0.1 初始化该对象,并检查二进制表示。
P = fipref('NumberDisplay', 'bin',... 'NumericTypeDisplay', 'short',... 'FimathDisplay', 'none'); a = fi(0.1, 0, 80, 83)
a =
11001100110011001100110011001100110011001100110011010000000000000000000000000000
numerictype(0,80,83)
请注意,无限重复表示在 52 位后截断,因为 IEEE® 标准双精度浮点数的尾数是 52 位。
将上述内容与在定点算术中计算 1/10 进行对比,其中商设置为与之前相同的数值类型。
T = numerictype('Signed', false,... 'WordLength', 80,... 'FractionLength', 83); a = fi(1); b = fi(10); c = divide(T, a, b); c.bin
ans = '11001100110011001100110011001100110011001100110011001100110011001100110011001101'
请注意,当您使用 divide 函数时,无论 a 和 b 的精度如何,商都计算到完整的 80 位。因此,fi 对象 c 可比 IEEE® 标准双精度浮点数更精确地表示 1/10。
输入参数
输出的数值类型,指定为 numerictype 对象。
分子,指定为标量、向量、矩阵或多维数组。
输入 a 和 b 的大小必须相同或兼容。有关详细信息,请参阅基本运算的兼容数组大小。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi
复数支持: 是
分母,指定为实数标量、向量、矩阵或多维数组。
输入 a 和 b 的大小必须相同或兼容。有关详细信息,请参阅基本运算的兼容数组大小。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi
复数支持: 是
输出参量
解,以标量、向量、矩阵或多维数组形式返回。
c 的大小由 a 和 b 的维度的隐式扩展决定。有关详细信息,请参阅基本运算的兼容数组大小。
算法
如果 a 和 b 均为 fi 对象,则 c 与 a 具有相同的 fimath 对象。如果 c 具有 fi Fixed 数据类型,并且任一输入具有 fi 浮点数据类型,则 fi 浮点值会转换为定点值。使用 a 的 fimath 对象计算中间量。
如果 a 或 b 为 fi 对象,而另一个为 MATLAB® 内置数值类型,则内置对象会转换为 fi 对象的字长,保留最佳精度小数长度。使用输入 fi 对象的 fimath 对象计算中间量。
如果 a 和 b 均为 MATLAB 内置双精度值,则 c 为浮点商 a./b,并且 numerictype T 将被忽略。
对于 Fixed-Point Designer™ 软件使用 numerictype 对象 T 的语法,divide 函数遵循下表中列出的数据类型传播规则。在大多数情况下传播浮点数据类型。这样,您可以编写同时适用于定点和浮点输入的代码。
| 输入 fi 对象 a 和 b 的数据类型 | numerictype 对象 T 的数据类型 | 输出 c 的数据类型 | |
|---|---|---|---|
内置 | 内置 | 任一值 | 内置 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 具有 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| fi single |
|
|
|
|
|
|
|
|
|
|
|
|
| 如果输入 |
|
|
|
|
|
|
|
|
|
|
| 如果输入 |
扩展功能
使用说明和限制:
任何非
fi输入必须为常量;也就是说,其值在编译时必须已知,以便将其转换为fi对象。不支持复数和虚数除数。
代码生成不支持语法
T.divide(a,b)。
对于 HDL 代码生成,除数必须为常量和 2 的幂。
非
fi输入必须为常量;也就是说,其值在编译时必须已知,以便它们可以转换为fi对象。不支持复数和虚数除数。
MATLAB 中的代码生成不支持语法
T.divide(a,b)。
版本历史记录
在 R2006a 之前推出从 R2022a 开始增加了针对 fi divide 的隐式扩展,以前返回错误的基本运算的一些参量组合现在能够生成结果。
如果您的代码使用按元素运算符并依赖 MATLAB 以前在出现大小不匹配情况时返回的错误,尤其是在 try/catch 代码块内,则您的代码可能不再捕获这些错误。
有关基本数组运算要求的输入大小的详细信息,请参阅基本运算的兼容数组大小。
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)