gpt4 book ai didi

c++ - 如何查找和替换 Eigen::Array 对象中的所有非有限数字?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:19:05 24 4
gpt4 key购买 nike

假设我有一个用 double 填充的数组:

Eigen::Array<double,m,n> myarray;

现在我想用数字 0.0 替换 myarray 的任何非有限元素,我该怎么做?

我正在考虑将它乘以我发现无穷大的零值数组,如下所示:

myarray *= myarray.cwiseEqual(std::numeric_limits<double>::infinity()) == 0.0;

并对每个无效类型执行此操作。但这真的很乱。有没有更好的办法?

最佳答案

这是一种简单的方法:

myarray = myarray.unaryExpr([](double v) { return std::isfinite(v)? v : 0.0; });

来源:[ http://eigen.tuxfamily.org/dox/classEigen_1_1ArrayBase.html#a23fc4bf97168dee2516f85edcfd4cfe7]

关于c++ - 如何查找和替换 Eigen::Array 对象中的所有非有限数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22927323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com