当我尝试打印时,本征 c++ NaN 消失了

Eigen c++ NaNs disappear when I try to print them

我在 C++ 中使用 Eigen 编写了一个代码,其中 returns 一些 NaN 并且整个事情爆炸了。当我尝试打印出变量(使用 ofstream)并追溯到 NaN 的来源时,NaN 突然没有出现并且计算成功完成。有谁知道为什么会这样?我认为创建大量随机 .txt 文件不是一个好的解决方法!

以防万一它是相关的,我使用的矩阵是稀疏的(而且很大),并且已经在代码的前面使用过,并在 NaN 表面之前用 .setZero() 重置。

检查未初始化的变量。

很多时候,如果您的程序按预期运行,然后在您下次针对相同的工作流程再次尝试 运行 时失败,原因是未初始化的变量。当然,还有许多其他原因可能会导致这种情况,但未初始化的变量是导致像您这样的错误的常见原因。