拜托,任何人帮我从实数中删除整数,而没有任何舍入到matlab中最接近的整数,例如:如果我有255/64 = 3.98我只需要3而不是4.我在我的程序中使用了修复但是不行。我的鳕鱼是:
S=imread('image0286.jpg')/64;
disp(fix(S);
这会在将S的元素四舍五入到最接近的整数后给出输出。
答案 0 :(得分:4)
fix
确实做你想做的事。
>>fix(255/64)
ans =
3
或许代码的其他部分没有按照您的想法行事。你能发布更多代码和预期的实际输出
吗?编辑: Imread将值返回为uint8,此类中的除法似乎执行了您不想要的舍入。在分割之前尝试重新加倍
S = double(imread('image0286.jpg'))/64
答案 1 :(得分:0)
floor(x)
这样做,但要注意负数。
但fix
也应该有用。
另请注意,imread
可能会返回byte
数组或int
数组,而不是浮点数。所以你的部门可能是内部分区,并且在不需要fix
或floor
的情况下自动截断。