is there an EIGEN equivalent for gsl_matrix_isnull?

is there an EIGEN equivalent for gsl_matrix_isnull?

本文关键字:matrix isnull gsl for there an EIGEN equivalent is      更新时间:2023-10-16

在Eigen中是否有用于测试矩阵是否消失的函数?就像gsl_matrix_不在gsl中一样?我找了很长一段时间,但没有找到这样的东西。

如果没有,还有什么比直接检查每个元素更快的吗?

如果我忽略了它,谢谢你,很抱歉。

我不认为有确切的等价物,但等价表达式有多种方式。考虑以下内容:

Eigen::MatrixXd mt(4, 4);
std::cout << mt << "n";
std::cout << mt.array().isApproxToConstant(0.0, 1e-15) << "n";
mt *= 0.;
std::cout << (mt.array().abs() < 1e-15).all() << "n";
std::cout << mt.array().isApproxToConstant(0.0, 1e-15) << "n";
std::cout << mt.array().cwiseEqual(0.0).all() << "n";

isApproxToConstant将所有元素与第一个参数进行比较,精度为第二个参数。(mt.array().abs() < 1e-15).all()检查相同,但必须接近零。如果您想要0,那么使用mt.array().cwiseEqual(0.0).all()

要完成Avi的答案,有isZero(eps),它本质上是(mat.array().abs()<=eps).all()的快捷方式,例如:

if(mat.isZero()) { ... }