python - programar - Nudo transponga problema de multiplicación
multiplicacion en python (2)
Está utilizando la multiplicación por elementos: el operador *
en dos matrices Numpy es equivalente al operador .*
en Matlab. Utilizar
prod = numpy.dot(testmatrix, testmatrix.T)
Traté de encontrar los valores propios de una matriz multiplicados por su transposición, pero no pude hacerlo usando numpy.
testmatrix = numpy.array([[1,2],[3,4],[5,6],[7,8]])
prod = testmatrix * testmatrix.T
print eig(prod)
Esperaba obtener el siguiente resultado para el producto:
5 11 17 23
11 25 39 53
17 39 61 83
23 53 83 113
y valores propios:
0.0000
0.0000
0.3929
203.6071
En cambio, obtuve ValueError: shape mismatch: objects cannot be broadcast to a single shape
al multiplicar testmatrix
con su transposición.
Esto funciona (la multiplicación, no el código) en MatLab pero necesito usarlo en una aplicación de Python.
¿Puede alguien decirme qué estoy haciendo mal?
Puede encontrar este tutorial útil ya que conoce MATLAB.
Además, intente multiplicar testmatrix
con la función dot()
, es decir, numpy.dot(testmatrix,testmatrix.T)
¡Aparentemente numpy.dot
se usa entre las matrices para la multiplicación de matrices! El operador *
es para la multiplicación de elementos ( .*
en MATLAB).