2016-11-19 9 views
2

3329×3329次元の行列mがあり、零点がたくさんあり、計算したいm^9です。 matrixパッケージ(Data.Matrixは使いやすいです)でこれを試した後、私は、疎な行列がメモリ使用量と場合によっては計算速度の点でより良い表現になると考えました。だから私はhmatrixパッケージを使用する方法を理解しようとしています。hmatrixを使用して疎行列を掛ける方法

module Example where 

import Numeric.LinearAlgebra as LA 

assocExample :: AssocMatrix 
assocExample = [((0,0), 1),((3329,5),1)] 

sparseExample :: GMatrix 
sparseExample = LA.mkSparse assocExample 

この時点で私の問題は、私はGMatrixを持っていることのように見えるが、乗算演算子(<>)のために、私が代わりにMatrix tを必要とする:私はすでにスパース行列を作成するために管理してきました。 hackageに関するhmatrixドキュメントを見ることで、私はここでMatrix tを入手する方法を見つけることができませんでした。

私はまた、introduction to hmatrixを気にしましたが、sparseという言葉にも言及されていません。

私の勘違いは、これが簡単にできるはずですが、私は単純なものが欠けています。

答えて

1

スパース行列は、hmatrixではかなり若いです。ドキュメントを見ると、疎な行列の産物はないようです。自分で実装する必要があります。

編集:そして、あなたがそうしている場合、ここでコメント:https://github.com/albertoruiz/hmatrix/issues/162(また、上記の私の文が実証)

+0

ちょっとおかげで - 私はこれを少し調査し、おそらくあなたの答えを受け入れるよります。この可能性は私にさえ起こらなかった^^ –

関連する問題