我有重叠矩阵的问题
import numpy as np
import pprint
A = np.array([[1,0],[0,1]])
B = np.array([[0,0,0],[0,0,0],[0,0,0]])
for i in range(0,2):
for j in range(0,2):
if i==0:
if j<2:
B[i,j]=A[i,j]
elif i==2:
if j==2:
B[i,j]=A[i,j]
else:
B[i,j] = A[i,j] + A[i-1,j-1]
pprint.pprint(B)
并返回如此([[1,0,0],[0,2,0],[0,0,0]])
的数组,但我想要([[1,0,0],[0,2,0],[0,0,1]])
我的代码出了什么问题?
请帮忙。
答案 0 :(得分:0)
你可以在没有任何循环的情况下完成:
B[:2, :2] += A
B[1:3, 1:3] += A
print(B)
# array([[1, 0, 0],
# [0, 2, 0],
# [0, 0, 1]])