使用scipy.sparse的三对角块矩阵

时间:2017-06-20 00:41:30

标签: python scipy

我需要帮助使用scipy稀疏构建块三对角矩阵。

我的意思是方阵B,

我需要创建

[[B I 0 0 0]
 [I B I 0 0]
 [0 I B I 0]
 [0 0 I B I]
 [0 0 0 I B]]

现在,我希望以编程方式完成此操作,因为矩阵的大小可能会有所不同。

谢谢!

1 个答案:

答案 0 :(得分:3)

解决了!

我刚刚将scipy.sparse.bmat与list comprehensions结合使用。

A = sparse.bmat([[B if i == j else np.eye(n) if abs(i-j)==1
                else None for i in range(n)]
                for j in range(n)], format='bsr')

其中Bnxn矩阵。