2017-04-21 185 views
1

我有一個問題,重疊矩陣Python的矩陣重疊

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

你可以不用任何的循環:

B[:2, :2] += A 
B[1:3, 1:3] += A 
print(B) 
# array([[1, 0, 0], 
#  [0, 2, 0], 
#  [0, 0, 1]]) 
+0

感謝,嗯一個問題。然後,如果我有6x6陣列,我想做9x9然後B [:5,:5] + = A,B [3:8,3:8] + =這種類型的代碼是正確的? – Mark

+0

取決於重疊區域,但是例如 –

+0

謝謝您回覆〜:) – Mark