在python中,如何编写生成两个元素为随机数的4 * 4矩阵A和B的程序。然后创建一个矩阵C,看起来像
C = ⎡A B⎤
⎣B A⎦
求矩阵c的对角线,对角线元素表示为一个4 * 2矩阵
import numpy as np
matrix_A = np.random.randint(10, size=(4, 4))
matrix_B = np.random.randint(10, size=(4, 4))
matrix_C = np.array([[matrix_A, matrix_B], [matrix_B, matrix_A]])
d= matrix_C.diagonal()
D=d.reshape(2,4)
print(f'This is matrix C:n{matrix_C}')
print(f'These are the diagonals of Matrix C:n{D}')
结构
matrix_C = np.array([[matrix_A, matrix_B], [matrix_B, matrix_A]])
不连接矩阵,而是创建四阶张量(将矩阵放入矩阵中)。你可以通过
检查print(matrix_C.shape) # (2, 2, 4, 4)
布局块调用np.block
,然后你的代码的所有其他部分应该工作良好:
matrix_C = np.block([[matrix_A, matrix_B], [matrix_B, matrix_A]])
print(matrix_C.shape) # (8, 8)
d= matrix_C.diagonal()
D=d.reshape(2,4) # np.array([matrix_A.diagonal(), matrix_A.diagonal()])