2016-04-19 258 views
0

嗨我被困在面對什麼似乎是一個簡單的問題,所以我必須錯過一些東西!元素明智的矩陣乘法python

我有一個從用戶值計算矩陣列表(不確定長度)。 - ttranspose

我還有另一個單一的矩陣,QBar,我想在ttranspose中將每個矩陣相乘(矩陣形式),並輸出結果矩陣的列表。 < <這應該與ttranspose的長度相同。

  def Q_by_transpose(ttranspose, Qmatrix): 
       Q_by_transpose = [] 
       for matrix in ttranspose: 
        Q_by_transpose_ind = np.matmul(ttranspose, Qmatrix) 
        Q_by_transpose.append(Q_by_transpose_ind) 
       return (Q_by_transpose) 

相反當我測試此爲6點矩陣(ttranspose)的列表我得到mtrices一長串,這似乎是在6門陣列(如預期)但每個陣列由6點矩陣的?

我希望能創建一個矩陣列表,然後我將在這個矩陣和另一個列表之間執行元素乘法。所以解決這個問題將有助於兩條戰線!

任何幫助將不勝感激!

我是Python和Numpy的新手,所以我希望你們能夠幫助!

感謝

回答

1

看來,而不是單個矩陣傳遞給np.matmul功能,您傳遞矩陣的完整列表。取而代之的

for matrix in ttranspose: 
    Q_by_transpose_ind = np.matmul(ttranspose, Qmatrix) 
    Q_by_transpose.append(Q_by_transpose_ind) 

做到這一點:

for matrix in ttranspose: 
    Q_by_transpose_ind = np.matmul(matrix, Qmatrix) 
    Q_by_transpose.append(Q_by_transpose_ind) 

這將只通過一個矩陣np.matmul,而不是整個列表。基本上你現在正在做的是將整個矩陣列表乘以n次,其中n是ttranspose中的矩陣數。

+0

你先生,是個天才!非常感謝你,我一整天都在和那個人打架! 令人沮喪的愚蠢錯誤! –