Bodhisatta Pramanik
Bodhisatta Pramanik

Reputation: 63

How to converting a large 2D array to a sparse matrix using Eigen library?

I wish to convert a simple 2D array into a SparseMatrix, in order to improve performance and run time, since I am dealing with an array of a size around 50,000-70,000.

So far what I have:

SparseMatrix<double> sp;
sp.resize(numCells,numCells);
double Matrix[numCells,numCells];
Matrix = Map<SparseMatrix>(Matrix,numCells,numCells);

The compiler returns type mismatch value at argument 1 in template parameter list for 'template class Eigen::Map'. I understand I am missing something here, but I can not figure it out.

Upvotes: 0

Views: 699

Answers (1)

kalanchloe
kalanchloe

Reputation: 503

Make a dense matrix and convert it into a sparse matrix:

double matrix[numCells * numCells]; // 1d array representation of your matrix
SparseMatrix<double> sp = Map<MatrixXd>(matrix,numCells,numCells).sparseView();

Upvotes: 1

Related Questions