我在c ++中使用Eigen编写了一个代码,它返回了一些NaN,整个事情都爆发了。当我尝试打印变量(带有ofstream)并追溯到NaN的起源位置时,NaNs突然出现并且计算成功完成。有没有人知道为什么会这样?我不认为创建大量随机.txt文件是一个很好的解决方法!
以防万一它是相关的,我使用的矩阵是稀疏的(和大的),并且已经在代码中使用过,并在NaNs表面之前用.setZero()重置。
答案 0 :(得分:0)
检查未初始化的变量。
通常情况下,如果您的程序按预期工作,然后在下次尝试再次为同一工作流程运行时失败,则原因是未初始化的变量。当然,还有很多其他因素可以导致这种情况,但未初始化的变量是像你这样的bug的常见原因。