Python:创建(稀疏)堆叠对角块矩阵

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

我需要创建一个具有以下形式的矩阵

M=[
[a1, 0, 0],
[0, b1, 0],
[0, 0, c1],
[a2, 0, 0],
[0, b2, 0],
[0, 0, c2],
[a3, 0, 0],
[0, b3, 0],
[0, 0, c3],
...]

其中 a(i)、b(i) 和 c(i) 是 [1xp] 块。生成的矩阵 M 的形式为 [3m x 3p]。我得到了 3 个矩阵 [m x p] 形式的输入数据:

A = [[a1.T, a2.T, a3.T, ...]].T
B = [[b1.T, b2.T, b3.T, ...]].T
C = [[c1.T, c2.T, c3.T, ...]].T

如何创建矩阵 M?理想情况下,使用 scipy.sparse 库它会是稀疏的,但我什至正在努力使用 numpy 将其创建为密集矩阵。在这种情况下,是否没有绕过循环或至少列表理解的方法?

numpy scipy sparse-matrix
© www.soinside.com 2019 - 2024. All rights reserved.