2017-04-13 7 views
2

Ich versuche, eine Liste von 2d Matrizen zu erzeugen, wie in der nachstehenden Abbildung:Erstellen Liste der 2D-Matrizen in Python

list of 2d matrices

Grundsätzlich mag ich mit einer NxN-Matrix mit Nullen starten und Ersetzen Sie die Nullen nacheinander durch 1 (wie im Bild gezeigt). Mit jeder Änderung, die die 0 zu 1 ändert, möchte ich die Matrix bei diesem Schritt ausgeben und sie in einer Liste oder einem Array speichern.

Für die erste Reihe von Matrizen in der Abbildung, ich habe dies:

dim = 4 
    x=[] 
    for i in range(0,dim): 
     matrix = np.zeros((dim,dim)) 
     matrix[0,i] = 1 
     x.append(matrix) 
    m0 = x[0] 
    m1 = x[0]+x[1] 
    m2 = x[0]+x[1]+x[2] 
    m3 = x[0]+x[1]+x[2]+x[3] 

Ich möchte dies verallgemeinern, so dass nur ich nicht die erste Reihe bekommen, aber den Rest der Zeilen in dem Bild gezeigt und Ändern Sie die Matrixgröße durch "Dim". Ich kann das nicht herausfinden. Ich würde mich über jede Hilfe freuen.

Antwort

0

Dies wird die Arbeit machen:

import numpy as np 
dim = 4 
x=[] 
for i in range(dim): 
    lst=[] 
    matrix=np.zeros((dim,dim)) 
    vec=np.ones(i+1) 
    for j in range(dim): 
     matrix[0:i+1,j]=vec 
     lst.append(np.copy(matrix)) 
    x.append(lst) 
print(x) 
+0

Vielen Dank, dass eine Menge geholfen. – Jond

+0

Gern geschehen :) –

Verwandte Themen