将稀疏向量插入稀疏矩阵

问题描述 投票:0回答:1

我想使用稀疏矩阵和稀疏向量设置稀疏矩阵的列。试图检查相关文件,但我在这部分陷入困境。这可能吗? 如果有帮助的话,我正在与阴谋集团一起建设。我可以更改/添加库,只要它们可以处理稀疏矩阵和向量组合即可。

import Data.Sparse.SpMatrix
import Data.Sparse.SpVector 
import Numeric.LinearAlgebra.Sparse

main :: IO ()
main = do
let m1 = fromListSM (3,3) 
        [(0,0,1)
        ,(1,1,2)
        ,(2,2,3)
        ] :: SpMatrix Double
    let v = fromListSV 3 [(0,1),(1,4),(2,9)] :: SpVector Double
    let m2 = ...

我如何在这里定义

m2
才能使其发挥作用?它应该就像
m1
一样,但中间的柱子换成
v

在此示例中,

m2
的预期结果是

1 1 _
_ 4 _ 
_ 9 3
haskell sparse-matrix matrix-multiplication cabal sparse-vector
1个回答
0
投票

我没有看到使用

sparse-linear-algebra
中基于矩阵的 API 来执行此操作的明显好方法。但是,构造函数是导出的,您可以清楚地看到
SpMatrix
只是一个具有维度的
IntMap (IntMap a)
,而
SpVector
只是一个具有维度的
IntMap a
。因此,如果您找不到任何更聪明的方法,您可以直接进入内部并将您想要的行
insert
放入底层地图中。

© www.soinside.com 2019 - 2024. All rights reserved.