C++ gsl_矩阵_isnull是否存在本征等价物?

C++ gsl_矩阵_isnull是否存在本征等价物?,c++,eigen,C++,Eigen,在特征值中是否有一个函数用于测试矩阵是否消失?像gsl_矩阵_在gsl中为空?我找了好一阵子,但没有找到这样的 如果没有,有什么比直接检查每个元素更快的方法吗 谢谢你,如果我忽略了它,也很抱歉。我不认为有确切的等价物,但等价表达有多种方式。考虑以下事项: Eigen::MatrixXd mt(4, 4); std::cout << mt << "\n"; std::cout << mt.array().isApproxToConstant(0.0, 1e-15

在特征值中是否有一个函数用于测试矩阵是否消失?像gsl_矩阵_在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。所有检查都相同,但必须接近零。如果您想要精确的0,那么请使用mt.array.cwiseEqual0.0.all.

我认为没有精确的等价表达式,但等价表达式有多种方式。考虑以下事项:

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。所有检查都相同,但必须接近零。如果您想要精确的0,那么使用mt.array.cwiseEqual0.0.all.

来完成Avi的答案,有一个基本上是mat.array.abs的快捷方式来完成Avi的答案,有一个基本上是mat.array.abs的快捷方式