检查Eigen :: Matrix的任何元素是否与零不同

Nic*_*ick 5 c++ matrix any eigen

我有一个Eigen::Matrix<double, Dynamic, Dynamic>,我需要检查它的任何元素是否与0不同.

我尝试了以下代码:

Matrix<double, Dynamic, Dynamic> m;
bool f = (m != 0.0).any();
Run Code Online (Sandbox Code Playgroud)

但是我遇到了编译器错误.

二进制表达式的操作数无效('const Eigen :: Matrix'和'double')

Avi*_*urg 6

在Eigen中,大多数元素操作由Array类处理.幸运的是,有一种简单的方法可以在Matrix对象上使用它们.尝试

bool f = (m.array() != 0.0).any();
Run Code Online (Sandbox Code Playgroud)

  • 不。它只是将现有对象视为一个数组。 (3认同)