从给定的矩阵值函数生成块矩阵

Generating a block matrix from the given matrix valued function

我有以下问题。我有一些函数 A(l, l'),它是 NxN 矩阵,而 l, I 运行 在某个集合上(比如 -M,...,M)。我有兴趣生成一个块矩阵 (B)(l, l')=A(l, l') (在上面的例子中它有维度 (2M+1)Nx(2M+1)N) 其 l , l' 块由 A(l, l') 给出。据我所知,没有标准函数可以做到这一点(尽管在我看来这是获得块矩阵的一种自然方式 - 就其块而言)。 NumPy 块和 NumPy 连接之类的东西似乎无法做到这一点(如果我错了,请随时纠正我)。有人可以帮我解决这个问题或为我指明正确的方向吗?

我是 python 和这个社区的新手,所以不要对我评价太多。

提前致谢!

您可以通过以下方式实现numpy.bmat

B = np.bmat([[A(i,j) for j in range(-M, M+1)] for i in range(-M, M+1)])

这首先创建一个矩阵列表列表,然后使用 bmat 将它们并排放置