如何从犰狳矩阵中替换 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); } );
以下 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); } );