Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我花了昨天和今天的一部分时间来查找一些Matlab代码中的错误。我以为我的问题是索引(具有许多我尚未定义但仍会习惯的结构),但事实证明这是一个溢出错误。我由于特定原因错过了这个:
>> uint8(2) - uint8(1) ans = 1 >> uint8(2) - uint8(2) ans = 0 >> uint8(2) - uint8(3) ans = 0 我本来希望最后一个是-1 (或255 )。在大向量中间,很难检测到错误的0 s,但是255很容易引起注意。 关于将来如何轻松发现这些问题的任何技巧? (理想情况下,我想关闭溢出检查以使其像C一样工作。)当然,更改为double可行,但是如果我不知道首先要使用uint8 ,那就没有帮助。 回答: 您可以先打开整数警告: intwarning('on') 当整数算术溢出时,这会给您一个警告。 要小心的是,作为概括这里 ,这确实减慢整数运算调试期间所以只能用这个。 更多&回答... |
![]() |
![]() |