首页 > 编程笔记 > MATLAB笔记 阅读:8

MATLAB取整函数大全(附带实例)

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
数学运算中,当运算结果超出相应的整数类型能够表示的范围时,就会出现溢出错误,这时运算结果被置为该整数类型能够表示的最大值或最小值。

相关文章