在本征C++中,您如何
将vectorXf映射到matrixXf
(尺寸合适)
(上的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);
然后,您可以像使用任何本征对象一样使用vec_view_as_a_matrix,由于共享内存,对vec_view_as_a_matrix的修改也将报告给vec。如果要复制到新的MatrixXf对象,请使用您编写的构造:
MatrixXf x_cen = Map<MatrixXf>(vec.data(), rows, cols);