2016-11-24 3 views
1

Ich fragte mich, was die Zeilen in diesem Code tun sollen. Dies ist ein Code-Snippet mit Ich brauche Hilfe:Python Matrizen Code Bedeutung Snippet

# iterate through rows of X 
for i in range(len(X)): 
    # iterate through columns of Y 
    for j in range(len(Y[0])): 
     # iterate through rows of Y 
     for k in range(len(Y)): 
      result[i][j] += X[i][k] * Y[k][j] 

for r in result: 
    print(r) 

Antwort

1

Dieser Code multipliziert Matrizen X und Y und legt das resultierende Produkt in Matrix result. Es druckt dann die Matrix result Zeile für Zeile, so dass es wie eine Matrix auf dem Bildschirm aussieht.

Für diese Schnipsel zu arbeiten, Matrizen X, Y und result muss bereits up-- X und Y mit ihren Werten und result mit der richtigen Form (Anzahl der Zeilen und Spalten) und alle Null-Werte eingestellt werden. Beachten Sie, dass in diesem Code keine Fehlerüberprüfung stattfindet, auch nicht, dass die Anzahl der Spalten von X der Anzahl der Zeilen von Y entspricht.

Der Ausdruck len(X) gibt die Anzahl der Zeilen in X, während len(Y[0]) die Anzahl der Spalten von Y liefert, zumindest wenn XY und richtig festgelegt wurden. Der Rest des Codes ist der normale Weg, zwei Matrizen zu multiplizieren, wobei jeder Eintrag in result berechnet als Skalarprodukt aus einer Reihe von X mit einer Säule von Y.

Haben Sie Matrix-Multiplikation verstehen und wie Python speichert eine Matrix in einer Liste von Listen, oder benötigen Sie weitere Erklärung?

+0

Vielen Dank! Ich verstehe jetzt. – Nakash

+0

"aber mit sinnlosen Werten" ist nicht ganz genau, "Ergebnisse" muss die Null-Matrix sein –

+0

@JaredGoguen: Ja, Sie haben Recht. Ich dachte, ich sehe eine Zuweisung auf Null vor der inneren Schleife, wie es normalerweise der Fall ist. Ich korrigiere meine Antwort. Vielen Dank! –