在本征C++中,您如何
将vectorXf映射到matrixXf
(尺寸合适)

(上的docs很好
如何为外部对象做
所以我知道我们可以做:
MatrixXf x_cen=Map<MatrixXf>(*x,*n,*p);
但是,如果xVectorXf怎么办?

最佳答案

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

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

然后,您可以像使用任何本征对象一样使用vec_view_as_a_matrix,由于共享内存,对vec_view_as_a_matrix的修改也将报告给vec。如果要复制到新的MatrixXf对象,请使用您编写的构造:
MatrixXf x_cen = Map<MatrixXf>(vec.data(), rows, cols);

08-16 08:44