2016-11-19 6 views
2

Ich habe eine Matrix m der Dimension 3329×3329 mit vielen Nullfeldern und ich möchte m^9 berechnen. Nach dem Versuch, dies mit dem matrix Paket (Data.Matrix ist einfach zu bedienen) Ich dachte, dass eine Sparse-Matrix würde eine bessere Darstellung von diesem in Bezug auf Speichernutzung und möglicherweise auch Rechengeschwindigkeit. Also versuche ich herauszufinden, wie man das hmatrix Paket benutzt. Ich habe bereits geschaffen, eine Sparse Matrix zu erstellen:Wie man dünn besetzte Matrizen mit Hilfe der Hmatrix multipliziert

module Example where 

import Numeric.LinearAlgebra as LA 

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

sparseExample :: GMatrix 
sparseExample = LA.mkSparse assocExample 

an diesem Punkt Mein Problem scheint zu sein, dass ich ein GMatrix habe, aber für den Multiplikationsoperator (<>) Ich brauche ein Matrix t statt. Mit Blick auf die hmatrix Dokumentation über Hacking habe ich nicht herausgefunden, wie man hier eine Matrix t erhalten.

Ich hatte auch einen kurzen Blick auf die introduction to hmatrix, aber der Begriff sparse ist nicht einmal darin erwähnt.

Meine Ahnung ist, dass dies leicht genug sein sollte, aber ich vermisse etwas Einfaches.

Antwort

1

Spärliche Matrizen sind meines Wissens eher jung in der Hmatrix. Beim Durchsehen der Dokumente scheint es, dass es kein Produkt aus dünn besetzten Matrizen gibt. Sie müssen es selbst implementieren.

Edit: Und wenn Sie dies getan, Kommentar hier ein: https://github.com/albertoruiz/hmatrix/issues/162 (mauern auch über meine Aussage)

+0

Hey danke - ich werde diese ein wenig untersuchen und als wahrscheinlich Ihre Antwort zu akzeptieren. Diese Möglichkeit ist mir nicht einmal aufgefallen ^^ –

Verwandte Themen