所以我有一个生成各种矩阵的代码。这些矩阵需要存储在块对角矩阵中。这应该很简单,因为我可以使用scipy的:
scipy.linalg.block_diag(*arrs)
但是我遇到的问题是我不知道需要像这样存储多少个矩阵。我想让事情尽可能简单(自然)。我想到做类似的事情:
scipy.linalg.block_diag( matrix_list[ii] for ii in range(len(matrix_list)) )
但这是行不通的。我可以想到其他一些方法来实现此目的...但是对于我认为应该更简单的方法,它们都变得相当复杂。
是否有人有(或知道)一种简单的方法来执行此操作?
提前致谢!
最佳答案
当您这样做时:
scipy.linalg.block_diag( matrix_list[ii] for ii in range(len(matrix_list)) )
您正在将生成器表达式传递给
block_diag
,这不是使用它的方式。而是使用
*
运算符在函数调用中扩展参数列表,例如:scipy.linalg.block_diag(*matrix_list)
关于python - 使用linalg.block_diag获取可变数量的块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28095803/