![]() |
MATLAB除法... 29/29 /应该返回0吗?
我真的不认为这是一个精度问题,答案应该是0.226。这是确切的代码:
val = I(i,j) bucketSize pos = val / bucketSize I只是从中获取价值的矩阵。这是MATLAB的输出: val = 29 bucketSize = 128 pos = 0 我想念什么? [B]回答:[/B] 我的猜测是您的矩阵I是从[URL="https://www.mathworks.com/help/matlab/creating_plots/image-types.html"]图像文件[/URL]加载的像素数据,其值通常为[URL="http://www.mathworks.com/help/matlab/ref/uint8.html"]无符号8位整数[/URL] 。如前所述,将两个整数值都转换为[URL="http://www.mathworks.com/help/matlab/ref/double.html"]双精度[/URL]值将确保MATLAB执行浮点除法而不是整数除法(这将舍入结果)。 将一个值转换为[URL="http://www.mathworks.com/help/matlab/ref/double.html"]双精度[/URL]是不够的: [INDENT]对于所有二元运算,其中一个操作数是整数数据类型的数组(64位整数除外),另一个是标量双精度数,MATLAB使用逐元素双精度算术计算该运算,然后将结果转换回原始值整数数据类型。 [/INDENT]如果您想了解有关MATLAB中不同数值数据类型的更多信息,可以查阅[URL="http://www.mathworks.com/help/matlab/numeric-types.html"]本文档[/URL] 。 [url=https://stackoverflow.com/questions/3689575]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 23:17。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.