标签:
matlab编程技巧教育 |
对于一个单、双精度数,获得其单独的整数部分或小数部分在一些程序中有特殊的作用。如对一个数进行去模运算、对一幅图像进行剪切使其高、宽是某个数的整数倍等等。
对于取整,在C语言中有专门的取整符号[],在Matlab中三种方法实现
(1)数据类型转换
可以采用数据类型变换的方法进行。
a=12.356;
b=double(uint16(a));
if a<b
b=b-1;
end
等到了整数部分,小数部分就好办了:
c=a-b;
(2)取余数
如果知道被除数、除数,求其商的整数部分和小数部分,这时可以采用Matlab中的去模函数mod();直接得到整数部分,当然小数部分也就得到了
m=258;
n=13;
m0=mod(m,n);
b=(m-m0)/n;
c=m/n-b;
也可以使用取余数的函数rem,代替去取模函数,
m=258;
n=13;
m0=rem(m,n);
b=(m-m0)/n;
c=m/n-b;
利用几个函数可以更方便快捷的得到整数部分,但其结果是有差别的,使用时请大家注意,并灵活应用。
floor(x):得到不大于x的整数值;
round(x):得到最接近x 的整数值;
ceil(x):得到不小于x的整数值;
fix(x):得到绝对值不大于x绝对值的整数值。
举例如下:
若x=[ -1.9 -0.2 3.4 5.6 7.0 2.4+3.6i ],则floor(x)、round(x)、ceil(x)和fix(x)的值分别如下:
-2.0
-2.0
-1.0
-1.0
函数fix()满足我们一般取整数部分的要求。对于正数,可以用函数floor()和fix()来代替前面的程序。