【发布时间】:2019-07-08 00:39:57
【问题描述】:
例如,如果我有一个大小为 10 列和 3 行的 Eigen::MatrixXd,我如何将其别名为包含 Eigen::Vector3d 的 10 个元素的 std::vector?
当我说别名时,我的意思是使用相同的内存块而不复制。
我知道我可以通过以下方式进行反向映射:
std::vector<Vector3d> v(10);
...
Map<Matrix<double,3,Dynamic> > m(v.data().data(), 3, 10);
但是反过来,如果我有一个 Eigen::Matrix,我尝试将其转换为 Eigen::vector 的向量,但以下代码行编译失败
Eigen::Matrix2Xd points;
...
std::vector<Eigen::Vector2d> v_points(points.data()
Eigen::aligned_allocator<Eigen::vector2d>(points_data()))
【问题讨论】:
-
不,不是,我想要反向转换