Vector转Matrix
VectorXd m;
m<< 1,2,3,4,5,6,7,8,9;
Matrix3d A = Map<Matrix3d>(m.data())
输出A为:
A=[1,4,7
2,5,8
3,6,9]
如果需要转置,可以修改为:
或
Matrix转Vector
MatrixXf M1(3,3); // Column-major storage
M1 << 1, 2, 3,
4, 5, 6,
7, 8, 9;
Map<RowVectorXf> v1(M1.data(), M1.size());
cout << "v1:" << endl << v1 << endl;
Matrix<float,Dynamic,Dynamic,RowMajor> M2(M1);
Map<RowVectorXf> v2(M2.data(), M2.size());
cout << "v2:" << endl << v2 << endl;
输出:
v1:
1 4 7 2 5 8 3 6 9
v2:
1 2 3 4 5 6 7 8 9