MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   MATLAB除法... 29/29 /应该返回0吗? (https://www.labfans.com/bbs/showthread.php?t=23891)

poster 2019-12-10 20:48

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.