MATLAB取整函数大全(附带实例)
MATLAB 中有多种取整函数,可以使用不同的策略把浮点小数转换成整数,如下表所示。
当两个具有相同的整数类型的数值进行运算时,运算结果仍然是这种整数类型的数值:当一个整数类型数值与一个双精度浮点类型数值进行数学运算时,运算结果是这种整数类型的数值,取整默认采用四舍五入方式。
注意,不同的整数类型数值之间不能进行数学运算,除非提前进行强制转换。
【实例】整数类型数值参与的运算。在命令行窗口中输入以下语句,并查看输出结果。
函数 | 说明 | 示例1 | 示例2 |
---|---|---|---|
round(a) |
向最接近的整数取整 小数部分是 0.5 时向绝对值大的方向取整(四舍五入) |
>> round(5.3) ans = 5 |
>> round(5.5) ans = 6 |
fix(a) | 向 0 方向取整 |
>> fix(5.3) ans = 5 |
>> fix(5.5) ans = 5 |
floor(a) | 向不大于 a 的最接近整数取整 |
>> floor(5.3) ans = 5 |
>> floor(5.5) ans = 5 |
ceil(a) | 向不小于 a 的最接近整数取整 |
>> ceil(5.3) ans = 6 |
>> ceil(5.5) ans = 6 |
当两个具有相同的整数类型的数值进行运算时,运算结果仍然是这种整数类型的数值:当一个整数类型数值与一个双精度浮点类型数值进行数学运算时,运算结果是这种整数类型的数值,取整默认采用四舍五入方式。
注意,不同的整数类型数值之间不能进行数学运算,除非提前进行强制转换。
【实例】整数类型数值参与的运算。在命令行窗口中输入以下语句,并查看输出结果。
>> clear % 清除存储空间中的变量 >> x = uint32(350.2) * uint32(10.3) % 将两个 uint32 型数值相乘,自动舍去小数部分 x = uint32 3500 >> y = uint32(36.321) * 320.63 % 将 uint32 型变量与浮点数相乘,自动舍去小数部分 y = uint32 11543 >> z = uint32(50.321) * uint16(420.53) % 不同的整数类型数值之间不能进行数学运算 错误使用 * 整数只能与同类的整数或双精度标量值组合使用 >> whos % 查看当前工作区中的变量信息 Name Size Bytes Class Attributes x 1x1 4 uint32 y 1x1 4 uint32数学运算中,当运算结果超出相应的整数类型能够表示的范围时,就会出现溢出错误,这时运算结果被置为该整数类型能够表示的最大值或最小值。