主要内容

divide

将两个 fi 对象相除

说明

c = divide(T,a,b)a 的元素除以 b 的元素。结果 c 具有由 numerictype 对象 T 指定的数值类型。

示例

示例

全部折叠

此示例说明如何控制 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 函数时,无论 ab 的精度如何,商都计算到完整的 80 位。因此,fi 对象 c 可比 IEEE® 标准双精度浮点数更精确地表示 1/10。

输入参数

全部折叠

输出的数值类型,指定为 numerictype 对象。

分子,指定为标量、向量、矩阵或多维数组。

输入 ab 的大小必须相同或兼容。有关详细信息,请参阅基本运算的兼容数组大小

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi
复数支持:

分母,指定为实数标量、向量、矩阵或多维数组。

输入 ab 的大小必须相同或兼容。有关详细信息,请参阅基本运算的兼容数组大小

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi
复数支持:

输出参量

全部折叠

解,以标量、向量、矩阵或多维数组形式返回。

c 的大小由 ab 的维度的隐式扩展决定。有关详细信息,请参阅基本运算的兼容数组大小

算法

全部折叠

如果 ab 均为 fi 对象,则 ca 具有相同的 fimath 对象。如果 c 具有 fi Fixed 数据类型,并且任一输入具有 fi 浮点数据类型,则 fi 浮点值会转换为定点值。使用 afimath 对象计算中间量。

如果 abfi 对象,而另一个为 MATLAB® 内置数值类型,则内置对象会转换为 fi 对象的字长,保留最佳精度小数长度。使用输入 fi 对象的 fimath 对象计算中间量。

如果 ab 均为 MATLAB 内置双精度值,则 c 为浮点商 a./b,并且 numerictype T 将被忽略。

扩展功能

全部展开

版本历史记录

在 R2006a 之前推出

全部展开

另请参阅

| | | | | | | |