2016-11-24 13 views
1

私はこのコードの行が何をすべきか疑問に思っていました。これは私が助けを必要とするコードの抜粋です: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は既に正しい形状(行と列の数)及び全ゼロ値とXとその値とY、及びresult up--設定されなければなりません。このコードでは、エラーのチェックは行われず、Xの列の数はYの行の数に等しいことにも注意してください。

len(Y[0])XYが正しく設定された少なくとも場合、Yの列数を返しながら、Xの行数を返しlen(X)発現。残りのコードは、2つの行列を掛ける標準的な方法であり、各エントリはXの列のスカラ積として計算され、Yの列で計算されます。result

行列の乗算と、Pythonが行列をリストのリストに格納する方法を理解していますか、それとももっと説明が必要ですか?

+0

ありがとうございました!今、私は分かる。 – Nakash

+0

"無意味な値で"はあまり正確ではないので、 'results'はゼロ行列でなければなりません。 –

+0

@JaredGoguen:はい、そうです。私は、通常はそうであるように、内側のループの前にゼロへの割り当てを見たと思った。私は私の答えを訂正します。ありがとう! –

関連する問題