Eigen 怎么判断 Eigen::Vector3d 里面有无效值 c++ 代码
时间: 2024-04-01 13:38:27 浏览: 238
C++ Eigen库的下载配置和使用
5星 · 资源好评率100%
判断 Eigen::Vector3d 是否存在无效值,可以使用 Eigen::Vector3d 的 allFinite() 方法。该方法会返回一个 bool 类型的值,如果 Eigen::Vector3d 所有元素都是有效的(即不是 NaN 或 Inf),则返回 true,否则返回 false。
示例代码:
```c++
Eigen::Vector3d v = Eigen::Vector3d::UnitX();
v(1) = std::numeric_limits<double>::quiet_NaN(); // 设置一个 NaN 值
if (v.allFinite()) {
std::cout << "v 中所有元素都是有效值" << std::endl;
} else {
std::cout << "v 中存在无效值" << std::endl;
}
```
在上面的示例中,我们首先创建了一个 Eigen::Vector3d 类型的变量 v,然后将它的第二个元素设置为 NaN。最后通过调用 v.allFinite() 方法来判断 v 中是否存在无效值。由于 v 中存在 NaN 值,因此该方法会返回 false。
阅读全文