为什么变量在 Matlab 中不取负值?

Why variable does not take negative value in Matlab?

我是 Matlab 新手。 我有这些简单的线条。问题是 sum 变量不取负值。所有变量都是双精度的。

 Inp_pixel = Inp_padded(x, y);
 Filter_pixel = Filter(f_row, f_col);
 sum = sum + (Inp_pixel * Filter_pixel);

例如:如果 Filter_pixel = -1 且 Inp_pixel = 150 且 sum = 0。预期结果应该是 -150 但我得到 sum = 0

问题出在Inp_pixel。此变量从 uint8 二维数组分配。 这就是为什么这个变量没有取乘积的负值。我使用 cast() 函数来解决这个问题。 有关此功能的更多详细信息,请查看此 link。 MATLAB documentation page