2013-03-18 44 views
11

Esiste un modo semplice e veloce per convertire una matrice sparsa in una matrice densa di doppi?Come convertire la matrice sparsa in matrice densa in Eigen

Perché il mio SparseMatrix non è più sparse, ma è diventato denso dopo alcuni prodotti a matrice.

Un'altra domanda che ho: la libreria Eigen ha prestazioni eccellenti, come è possibile? Non capisco perché, perché ci sono solo file header, nessuna fonte compilata.

+1

Cosa prestazioni hanno a che fare con il fatto che il codice è in '. File h' o in file '.cpp'? – us2012

+1

Per capire come funziona Eigen e cosa lo rende veloce, dai un'occhiata migliore ai loro documenti (es. [Cosa succede dentro] (http://eigen.tuxfamily.org/dox/TopicInsideEigenExample.html)) (che vede il numero di le tue domande sarebbero utili in ogni caso), e prendere un libro su anticipo C + + e la programmazione dei modelli. In ogni caso, dovresti rimuovere questa domanda qui e crearne una nuova se dopo questo non sei ancora sicuro di alcuni dettagli su come funziona. – sgvd

risposta

27

Diamo dichiarare due matrici:

SparseMatrix<double> spMat; 
MatrixXd dMat; 

Sparse per denso:

dMat = MatrixXd(spMat); 

Dense a rada:

spMat = dMat.sparseView(); 
Problemi correlati