在 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/