2016-04-19 18 views
0

Hallo Ich stecke auf, was auf dem Gesicht scheint ein einfaches Problem, so muss ich etwas verpassen!Element weise Matrix Multiplikation Python

Ich habe eine Liste (von unbestimmter Länge) von Matrizen aus Benutzerwerten berechnet. - ttranspose

Ich habe auch eine andere einzelne Matrix, Qbar, die ich möchte (Matrixform) jede der Matrizen in ttranspose, und eine Liste der resultierenden Matrizen ausgeben. < < Welche sollte die gleiche Länge wie ttranspose haben.

  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) 

Stattdessen, wenn ich diese Prüfung mit einer Liste von 6 Matrizen (ttranspose) erhalten I die eine lange Liste von mtrices, die in 6-Arrays zu sein scheint (wie erwartet), aber jede Anordnung besteht aus 6-Matrizen hergestellt ?

Ich hoffe, eine Liste von Matrizen zu erstellen, für die ich dann elementweise Multiplikation zwischen dieser und einer anderen Liste durchführen würde. Die Lösung wird also an beiden Fronten helfen!

Jede Hilfe würde sehr geschätzt werden!

Ich bin neu bei Python und Numpy, also hoffe ich euch helfen zu können!

Dank

Antwort

1

Es scheint, dass stattdessen eine einzelne Matrix auf die np.matmul Funktion vorbei, können Sie die gesamte Liste der Matrizen sind vorbei. Statt

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

dies tun:

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

Dies ist nur eine Matrix zu np.matmul statt der gesamten Liste passieren. Im Wesentlichen multiplizieren Sie jetzt die gesamte Liste der Matrizen n mal, wobei n die Anzahl der Matrizen in ttranspose ist.

+0

Sie Sir, sind ein Genie! Vielen Dank, mit dem ich den ganzen Tag gekämpft habe! Frustrierend dummer Fehler! –