如何替换Armadillo矩阵中的Nan

How to replace NaN from armadillo matrix?

本文关键字:Nan Armadillo 何替换 替换      更新时间:2023-10-16

以下MATLAB代码的Armadillo/C 等效是什么?

A(isnan(A))=b;

使用.transform()成员函数仅更改NAN条目。这也比使用find_nonfinite()和它将留下任何不变的INT值。

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

从文档中,您可以使用 has_nan()查看是否有任何值。但是,似乎没有一个函数来返回其中哪个是NAN的索引,因此看来您可能需要循环,并一一检查单个元素。

但是,如果您不必担心拥有无限的人,则可以使用find_nonfinite( X ),这将为您提供INF和NAN值的索引。