天天看点

Eigen中Vector与Matrix的转换

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
           

继续阅读