使用 Eigen 库存储 3D 数据

Posted

技术标签:

【中文标题】使用 Eigen 库存储 3D 数据【英文标题】:Storing 3D data with Eigen library 【发布时间】:2017-12-07 22:12:10 【问题描述】:

如何使用 Eigen C++ 库存储 3D 数据? Vector 用于 1D 数据,Matrix 用于 2D 数据,但什么是 3D 数据?或者是否可以创建一个矩阵向量?

【问题讨论】:

Multidimensional arrays in eigen library的可能重复 【参考方案1】:

您可以使用张量模块。不过还不稳定。

Eigen::Tensor<double, 3> epsilon(4,5,6);  // 3 dimensions (4x5x6)
epsilon.setZero();
epsilon(0,1,2) = 1;
epsilon(0,2,1) = -1;

http://eigen.tuxfamily.org/index.php?title=Tensor_support

【讨论】:

你认为如果这样:std::vector 会更好吗?使用这个张量可以解决什么样的问题? 我取决于您的用例。如果您负担不起重构代码的费用,请采用 std::vector 方法。我个人更喜欢首先选择最适合的方法(即 Tensor)。

以上是关于使用 Eigen 库存储 3D 数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 Eigen 实现 3D 位置的卡尔曼滤波器

Eigen库学习---Map类

将数据从 std::Vector 存储到 Eigen::Vector 时出错 [重复]

Eigen:将 Matrix3d 旋转转换为四元数

如何在 C++ 中将 typedef 与类初始值设定项参数一起使用?

从 std::vector 创建 Eigen::Ref