我需要从指定非对角块的矩阵列表中构建一个矩阵,理想情况下是稀疏矩阵
我知道bmat
,但这需要知道有多少个矩阵。我想知道是否有scipy.sparse.block_diag(list_of_mats,-1)
的等价物
该函数应该能够处理非平方矩阵(否则我可以直接填充来自block_diag(list_of_mats)
的输出)。例如,输入([[1,2]], [[3]])
应该返回[[0,0,0,0],[0,0,0,0],[1,2,0,0],[0,0,3,0]]
例如,在Mathematica中,我可以指定一个矩阵矩阵并使用ArrayFlatten
评论澄清
是的,len(list_of_mats)
确实给出了矩阵的数目,但是我必须动态地构造[[None, ..., None], [A1, None, ...], [None, A2, None, ...], ...]
来将bmat
应用到它,我不知道如何做到这一点(A1
等是list_of_mats
的元素)。我想这也回答了另一个问题。这种映射的工作原理是,首先用list_of_mats
在(比如说)第一个对角线上写一个矩阵,然后将其展平,使其成为一个正规矩阵。与块对角矩阵不同的是,列表中的矩阵不必是正方形,这就是我想用我的示例来说明的。我认为这张地图是独一无二的。我不认为numpy.tri在这里有帮助(它也不是稀疏的)
目前没有回答
相关问题 更多 >
编程相关推荐