У меня есть матрица m
измерения 3329×3329
с большим количеством нулевых полей, и я хочу рассчитать 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
в нем даже не упоминается.
Моя догадка заключается в том, что этого должно быть достаточно легко сделать, но мне не хватает чего-то простого.
Эй спасибо - я буду расследовать это немного, и чем скорее принять ваш ответ. Эта возможность мне даже не приходила ^^ –