trunc使用matlab

问题描述:

请真正的整数从trunc的整数,没有任何轮到MATLAB中的最接近的整数,例如:如果我有255/64 = 3.98我只需要3我在我的程序中使用了修复程序,但没有工作。我的鳕鱼是:trunc使用matlab

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

这给我发输出后的S到最接近的整数元素不能切断的整数。

fix确实做你想做的。

>>fix(255/64) 
    ans = 
      3 

也许你的代码的一些其他部分没有做你认为它正在做的事情。你可以发布更多的代码和你的预期和真实的输出

编辑: Imread返回值为uint8,并且这个类的划分似乎进行你不想要的舍入。尝试重新分割之前

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

我需要将颜色空间从256减少到4,我在读取图像后将图像分割为64,当我尝试计算颜色直方图时,我发现颜色becom 5而不是4,因为它四舍五入为最接近的整数。 – zenab 2010-08-22 11:00:01

+0

好的,我认为我发现了你的问题,请参阅编辑 – second 2010-08-22 11:32:51

+0

+1。 – Jonas 2010-08-22 11:53:07

floor(x)这样做,但要小心负数。

fix也应该工作。

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

+0

我尝试在我的程序中的地板也轮到最近的整数,我需要得到plrase例如: 3.1 = 3; 3.2 = 3; 3.5 = 3; 3.7 = 3; 3.9 = 3 – zenab 2010-08-22 11:19:23

+0

如果是这样,你做错了什么。请向我们展示'S(1,:)'的输出。也许这已经圆满了。 – 2010-08-23 21:53:21