Неперекрывающиеся подматрицы
Я застрял в поиске способа получить только неперекрывающиеся подматрицы. Мой код ниже находит все подматрицы.
Код :
n = 4
matrix = [[1,2,3,4],
[5,6,7,8],
[9,10,11,12],
[13,14,15,16]]
k = 2 #Finding 2x2 submatrices
t=[]
for i in range(n-k+1):
for j in range(n-k+1):
l=[]
for x in range(i,i+k):
for y in range(j,j+k):
if x==i or x==i+k-1 or y==j or y==j+k-1:
l.append(matrix[x][y])
t.append(l)
Итак, если я напечатаю t
, я получу:
for i in t:
print(i)
O / P:
[1, 2, 5, 6]
[2, 3, 6, 7]
[3, 4, 7, 8]
[5, 6, 9, 10]
[6, 7, 10, 11]
[7, 8, 11, 12]
[9, 10, 13, 14]
[10, 11, 14, 15]
[11, 12, 15, 16]
Но вот o / p, которое я хочу:
[1,2,5,6]
[3,4,7,8]
[9,10,13,14]
[11,12,15,16]