使用matlab从实数中截取整数

时间:2010-08-22 10:24:15

标签: matlab numbers cut

拜托,任何人帮我从实数中删除整数,而没有任何舍入到matlab中最接近的整数,例如:如果我有255/64 = 3.98我只需要3而不是4.我在我的程序中使用了修复但是不行。我的鳕鱼是:

S=imread('image0286.jpg')/64; 
   disp(fix(S);

这会在将S的元素四舍五入到最接近的整数后给出输出。

2 个答案:

答案 0 :(得分:4)

fix确实做你想做的事。

>>fix(255/64)
    ans =
          3

或许代码的其他部分没有按照您的想法行事。你能发布更多代码和预期的实际输出

吗?

编辑: Imread将值返回为uint8,此类中的除法似乎执行了您不想要的舍入。在分割之前尝试重新加倍

S = double(imread('image0286.jpg'))/64

答案 1 :(得分:0)

floor(x)这样做,但要注意负数。

fix也应该有用。

另请注意,imread可能会返回byte数组或int数组,而不是浮点数。所以你的部门可能是内部分区,并且在不需要fixfloor的情况下自动截断。