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,
xSNAyid6AimHG,D i#T6v]Ef/ +۴sΝHZ[J| YG,[d8kUZ<[;:&ό[Q; Fm,*4h4<äN;A]g.ᙗsDB50NȬFTwVzfNxz[HR%2 =RpO-p~Z->q/wX).WQwJA(\ #%t&6(o8ê9Y<5LD@6&sp%Or\ QYDq;X@z?!I [-vVUdWV)@#-]R۲$¬>'g?%"C:: sS@n$W`A%& =O%NbQ58ÇdІoj5[@G6:־_O*UV[(}ȻvL\^X3f7w[;ob 3v:\z<+vy7{9oJ?gmRAm8j#t,:@

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的事实.