2013-03-18 63 views
11

疎行列を密度の高い二倍行列に変換する簡単で簡単な方法はありますか?Eigenの疎行列を密行列に変換する方法

私のSparseMatrixはこれ以上スパースではありませんが、一部のマトリックス製品の後に密になりました。

私が持っているもう1つの質問:Eigenライブラリは優れたパフォーマンスを備えていますが、これはどのように可能ですか?ヘッダファイルだけでコンパイルされたソースがないので、私は理由を理解できません。密にスパース

SparseMatrix<double> spMat; 
MatrixXd dMat; 

+1

パフォーマンスはコードが 'であるかどうかに関係していない何か。 h'ファイルまたは '.cpp'ファイルにありますか? – us2012

+1

Eigenがどのように機能し、何が速くなっているかを理解するには、ドキュメントを見直してください(例:[内部で何が起こるか](http://eigen.tuxfamily.org/dox/TopicInsideEigenExample.html))あなたの質問はどんな場合にも役立つでしょう)、そして先進的なC++とテンプレートプログラミングに関する本を手にしてください。 いずれにせよ、ここでその質問を削除し、それ以降はまだ動作しているかどうか不明な場合は新しい質問を作成する必要があります。 – sgvd

答えて

27

は、の2つの行列を宣言してみましょう

スパースに高密度
dMat = MatrixXd(spMat); 

spMat = dMat.sparseView(); 
関連する問題