Eigen::Vector3f 赋值给Eigen::VectorXd(2)
时间: 2023-08-11 22:06:52 浏览: 283
eigen库使用方法.zip
将 `Eigen::Vector3f` 赋值给 `Eigen::VectorXd(2)` 可以使用 `Eigen::Map` 实现:
```cpp
Eigen::Vector3f vec3f(1.0f, 2.0f, 3.0f);
Eigen::VectorXd vecXd = Eigen::Map<Eigen::VectorXd>(vec3f.data(), 2);
```
其中,`Eigen::Map` 将 `vec3f` 的前两个元素映射到 `Eigen::VectorXd(2)` 中,`vec3f.data()` 返回 `vec3f` 的数据指针,`2` 表示映射的维度。这样,`vecXd` 就是 `vec3f` 的前两个元素构成的向量,类型为 `Eigen::VectorXd(2)`。需要注意的是,`Eigen::Map` 并不改变底层数据,只是将数据按照指定的方式解释为一个新的向量。因此,在使用 `vecXd` 时应该确保其对应的内存空间是有效的。
阅读全文