MATLAB如何计算整数除法以及取余?
介绍MATLAB中的idivide函数,mod函数和rem函数。第一个用于计算整数除法,后者两个用于精度数的两种取余操作(整数也可)。
操作方法
- 01
首先,我们用A=int32(-10:3:10)产生32位整数列表。然后用double(A)./4可以看到双精度的除法结果。 再用过idivide(A, int32(4)),计算整数除法,将A中每个元素除以4. 可以看到,idivide的默认操作为舍去小数。
- 02
idivide函数可以带有参数。第三个参数可以是'floor','ceil','round','fix'这几项,分别对应向下取整,向上取整,四舍五入,舍去小数。
- 03
另外,如果对于idivide(A,B),A和B要么是等长数组,要么其中一个是1*1的单个元素。
- 04
如果连个列表长度不等,会报错。idivide相当于对整数列表使用 ./ 除号。
- 05
对于mod函数,会计算除法结果向下取余,再计算余数。 当列表为精度数时,mod(A,m)相当于公式A-m.*floor(A./m)
- 06
因此,取余并不是整数除法的专利。如图,对于theta列表,也可以按照pi=3.14159...取余。等价运算公式同上。
- 07
rem函数则是另一种取余操作,rem(A,m)相当于A-m.*fix(A./m) 当两者都为正数时,mod和rem没有区别。
赞 (0)