检查 Eigen::Matrix 的任何元素是否不为零
Check if any element of Eigen::Matrix is different from zero
我有一个 Eigen::Matrix<double, Dynamic, Dynamic>
,我需要检查它的任何元素是否不同于 0。
我尝试了以下代码:
Matrix<double, Dynamic, Dynamic> m;
bool f = (m != 0.0).any();
但是我遇到了编译错误。
Invalid operands to binary expression ('const Eigen::Matrix' and 'double')
在 Eigen 中,大部分元素操作都由 Array
class 处理。幸运的是,有一种简单的方法可以在 Matrix
对象上使用它们。尝试
bool f = (m.array() != 0.0).any();
另一种选择是
bool f = !m.isZero();
它应该适用于 Array
和 Matrix
我有一个 Eigen::Matrix<double, Dynamic, Dynamic>
,我需要检查它的任何元素是否不同于 0。
我尝试了以下代码:
Matrix<double, Dynamic, Dynamic> m;
bool f = (m != 0.0).any();
但是我遇到了编译错误。
Invalid operands to binary expression ('const Eigen::Matrix' and 'double')
在 Eigen 中,大部分元素操作都由 Array
class 处理。幸运的是,有一种简单的方法可以在 Matrix
对象上使用它们。尝试
bool f = (m.array() != 0.0).any();
另一种选择是
bool f = !m.isZero();
它应该适用于 Array
和 Matrix