Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Eigen - get a matrix from a map?

Tags:

c++

eigen

I'm using Eigen::Map to get access to create an object from a C-array. I would like to save that object as a member variable of type MatrixXf.

How do I do that? I couldn't find a way to convert the Map to a Matrix.

Thanks.

like image 603
Ran Avatar asked Jan 31 '14 23:01

Ran


2 Answers

Just use operator=:

MatrixXd mat;
mat = Map<MatrixXd>(data, rows, cols);
like image 76
ggael Avatar answered Sep 21 '22 00:09

ggael


I have encountered the same issue but vector is constant, then you have to do it following way as @ggael proposed,

Eigen::MatrixXd mat = Eigen::Map<const Eigen::MatrixXd>(x.data(), rows, cols);

where x can be either const Eigen::VectorXd x or const std::vector<double> or C type array.

like image 45
GPrathap Avatar answered Sep 18 '22 00:09

GPrathap