【问题标题】:Generating a block matrix from the given matrix valued function从给定的矩阵值函数生成块矩阵
【发布时间】:2021-08-11 19:42:50
【问题描述】:

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

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

提前谢谢你!

【问题讨论】:

  • 您能否展示一个示例输入和预期输出?
  • 问题是到目前为止我不知道要输入什么。我只给了 A(l, l') 并想从中生成一个块矩阵并努力做到这一点。

标签: python matrix linear-algebra


【解决方案1】:

你可以通过以下方式实现这个numpy.bmat

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

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

【讨论】:

  • 非常感谢!事实证明,超级简单。
  • 感谢您,欢迎来到社区。​​span>