Matlab double型数据怎样截取整数部分想要只截取生成的一列double型数据的整数部分,但不进行四舍五入.如:[1.0000 0.0000 0.3333 0.6987] 截取后得到 [1 0 0 0].试过用uint 得到的是[1 0 0 1],也试过用floor,
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/19 05:54:15
Matlab double型数据怎样截取整数部分想要只截取生成的一列double型数据的整数部分,但不进行四舍五入.如:[1.0000 0.0000 0.3333 0.6987] 截取后得到 [1 0 0 0].试过用uint 得到的是[1 0 0 1],也试过用floor,
Matlab double型数据怎样截取整数部分
想要只截取生成的一列double型数据的整数部分,但不进行四舍五入.如:
[1.0000 0.0000 0.3333 0.6987] 截取后得到 [1 0 0 0].
试过用uint 得到的是[1 0 0 1],也试过用floor,也得不到想要的结果.
fix我也试过了,不行呐.我用linprog函数得出了一组double数:
x'= 1.0000 1.0000 0.3333 0.0000 1.0000 1.0000 0.0000 0.0000 0.6667 1.0000 0.0000 -0.0000
fix(x)' = 0 0 0 0 0 0 0 0 0 0 0 0
floor(x)'= 0 0 0 0 0 0 0 0 0 0 0 -1
Matlab double型数据怎样截取整数部分想要只截取生成的一列double型数据的整数部分,但不进行四舍五入.如:[1.0000 0.0000 0.3333 0.6987] 截取后得到 [1 0 0 0].试过用uint 得到的是[1 0 0 1],也试过用floor,
有两种办法,结果不同
1 floor函数,向下取整
>> floor([1.0000 0.0000 0.3333 0.6987])
ans =
1 0 0 0
2 fix函数,向0取整,在参数>0的时候,效果等同于floor;在参数> fix([1.0000 0.0000 0.3333 0.6987]) % >0, 等同 floor
ans =
1 0 0 0
>> floor([-1.0000 -0.0000 -0.3333 -0.6987]) % 向下取整
ans =
-1 0 -1 -1
>> fix([-1.0000 -0.0000 -0.3333 -0.6987]) % > a=0.99999
a =
1.0000
>> fix(a)
ans =
0
也许你可以根据你的数据精度,适当加上一个不影响结果而又很小的小数,然后再fix,或者干脆接受这样的很多位小数被砍为0的事实.