2016-11-24 78 views
1

我想知道代碼中的for行應該做什麼。這是一個代碼片段我需要幫助:Python矩陣代碼含義片段

# 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) 

回答

1

該代碼矩陣相乘和XY把所得到的產品進入矩陣result。然後它將逐行打印矩陣result,因此它看起來像屏幕上的矩陣。

對於這個片段的工作,矩陣XYresult必須已經設置up-- XY與他們的價值觀,並與result正確的形狀(行數和列數)和所有零個值。請注意,此代碼中沒有錯誤檢查,即使X的列數等於Y的行數。

表達len(X)返回X的行數,而len(Y[0])返回Y列數,至少如果XY被正確設置。其餘代碼是將兩個矩陣相乘的標準方法,其中result中的每個條目均計算爲X行的標量乘積,列爲Y

您是否理解矩陣乘法以及Python如何將列表存儲在列表列表中,還是您需要更多解釋?

+0

謝謝!我現在知道了。 – Nakash

+0

「但是沒有意義的值」不太準確,「結果」必須是零矩陣 –

+0

@JaredGoguen:是的,你說得對。我認爲我在內部循環之前看到一個賦值爲零,通常情況如此。我會糾正我的答案。謝謝! –