如何从犰狳矩阵中替换 NaN?

How to replace NaN from armadillo matrix?

以下 matlab 代码的 armadillo/c++ 等效项是什么?

A(isnan(A))=b;

docs, you can use has_nan() 查看是否有任何值是 NaN。但是,似乎没有return其中哪些索引为NaN的函数,因此看起来您可能需要循环并逐个检查各个元素。

但是,如果您不担心无穷大,那么您可以使用 find_nonfinite( X ),它会为您提供 Inf 和 NaN 值的索引。

使用 .transform() member function to change only the NaN entries. This is also faster than using find_nonfinite() 和 它将使任何 Inf 值保持不变。

A.transform( [](double val) { return (std::isnan(val) ? double(b) : val); } );