numpy 写一个python程序来生成一个矩阵:

u5rb5r59  于 2023-04-30  发布在  Python
关注(0)|答案(1)|浏览(124)

写一个python程序,对给定的n ∈ N生成矩阵A^n ∈ R^(2n×2n)。对于n = 4,矩阵如下所示:this未显示的条目应初始化为0。避免循环!提示:使用np。Block和NP。翻转

import numpy as np

n = 4

A = np.block([[1, 2, 0, 0],
          [3, 1, 2, 0],
          [0, 3, 1, 2],
          [0, 0, 3, 1]])

A = np.block([[A, np.zeros((4, 4))],
          [np.zeros((4, 4)), np.fliplr(A)]])

A = np.block([[A, np.zeros((8, 4))],
          [np.zeros((4, 8)), np.flipud(A)]])

print(A)

这是我尝试过的,但我得到和错误:ValueError:除了连接轴之外的所有输入数组维度都必须完全匹配,但是沿着维度0,索引0处的数组大小为4,索引1处的数组大小为8,我不知道如何修复它。

hzbexzde

hzbexzde1#

试试这个:

import numpy as np

n = 4

A = np.block([[1, 2, 0, 0],
          [3, 1, 2, 0],
          [0, 3, 1, 2],
          [0, 0, 3, 1]])

B = np.block([[A, np.zeros((n, n))],
          [np.zeros((n, n)), np.fliplr(A)]])

C = np.block([[B, np.zeros((2 * n, n))],
          [np.zeros((n, 2 * n)), np.flipud(np.fliplr(B))]])

print(C)

相关问题