查看单个帖子
旧 2019-12-10, 20:30   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何识别Matlab中的溢出错误?

我花了昨天和今天的一部分时间来查找一些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') 当整数算术溢出时,这会给您一个警告。

要小心的是,作为概括这里 ,这确实减慢整数运算调试期间所以只能用这个。



更多&回答...
poster 当前离线   回复时引用此帖