c++ - eigen::vectorXf 到 MatriXf 映射

标签 c++ eigen

在 eigen c++ 中,你如何 将 vector Xf 映射到矩阵 Xf (适当尺寸)

(有很好的docs 如何对外部对象执行此操作 所以我知道我们可以做:

MatrixXf x_cen=Map<MatrixXf>(*x,*n,*p);

但是如果x呢?是 VectorXf

最佳答案

您可以使用 .data() 成员函数,然后使用 Map:

VectorXf vec(rows*cols);
vec = ...;
Map<MatrixXf> vec_view_as_a_matrix(vec.data(), rows, cols);

然后您可以像使用任何 Eigen 对象一样使用 vec_view_as_a_matrix,对 vec_view_as_a_matrix 的修改也会报告给 vec,因为它们共享内存。如果您想复制到新的 MatrixXf 对象,请使用您编写的构造:

MatrixXf x_cen = Map<MatrixXf>(vec.data(), rows, cols);

关于c++ - eigen::vectorXf 到 MatriXf 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13395431/

相关文章:

c++ - 从Pytorch C++中的c10::Dict <c10::IValue,c10::IValue>获取值

c++ - 运行时 Eigen 断言错误

c++ - 对 RGB 图像使用特征数组

c++ - 加权外积的向量化

c++ - 编译时 Eigen 断言错误,不清楚的错误

c++ - 如何从资源文件(.rc 文件)加载位图?

c++ - 如何在OpenCV中使用网络摄像头获取Mat图像的像素值

c++ - 特征矩阵的大括号初始化

C++ 字符串和设置/获取函数

c++ - 函数内的函数不带括号?