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