我真的不认为这是一个精度问题,答案应该是0.226。这是确切的代码:
val = I(i,j) bucketSize pos = val / bucketSize I只是从中获取价值的矩阵。这是MATLAB的输出:
val = 29 bucketSize = 128 pos = 0 我想念什么?
回答:
我的猜测是您的矩阵I是从
图像文件加载的像素数据,其值通常为
无符号8位整数 。如前所述,将两个整数值都转换为
双精度值将确保MATLAB执行浮点除法而不是整数除法(这将舍入结果)。
将一个值转换为
双精度是不够的:
对于所有二元运算,其中一个操作数是整数数据类型的数组(64位整数除外),另一个是标量双精度数,MATLAB使用逐元素双精度算术计算该运算,然后将结果转换回原始值整数数据类型。
如果您想了解有关MATLAB中不同数值数据类型的更多信息,可以查阅
本文档 。
更多&回答...