Ste*_*eve 1 python numpy matrix parameter-passing scipy
所以我有一个生成各种矩阵的代码。这些矩阵需要存储在块对角矩阵中。这应该相当简单,因为我可以使用 scipy 的:
scipy.linalg.block_diag(*arrs)
Run Code Online (Sandbox Code Playgroud)
然而我遇到的问题是我不知道需要像这样存储多少个矩阵。我想让事情尽可能简单(自然地)。我想做一些类似的事情:
scipy.linalg.block_diag( matrix_list[ii] for ii in range(len(matrix_list)) )
Run Code Online (Sandbox Code Playgroud)
但这行不通。我可以想到其他一些方法来做到这一点......但对于我认为应该简单得多的事情来说,它们都变得相当复杂。
有谁知道(或知道)执行此操作的简单方法?
提前致谢!
当你这样做时:
scipy.linalg.block_diag( matrix_list[ii] for ii in range(len(matrix_list)) )
Run Code Online (Sandbox Code Playgroud)
您将生成器表达式传递给block_diag,这不是使用它的方式。
相反,使用*运算符来扩展函数调用中的参数列表,例如:
scipy.linalg.block_diag(*matrix_list)
Run Code Online (Sandbox Code Playgroud)