Vir*_*liu 19 python numpy scipy eigenvalue
我试图找到一个矩阵的特征值乘以它的转置,但我不能用numpy做.
testmatrix = numpy.array([[1,2],[3,4],[5,6],[7,8]])
prod = testmatrix * testmatrix.T
print eig(prod)
Run Code Online (Sandbox Code Playgroud)
我希望得到以下产品结果:
5 11 17 23
11 25 39 53
17 39 61 83
23 53 83 113
Run Code Online (Sandbox Code Playgroud)
和特征值:
0.0000
0.0000
0.3929
203.6071
Run Code Online (Sandbox Code Playgroud)
相反,我ValueError: shape mismatch: objects cannot be broadcast to a single shape
在乘以testmatrix
它的转置时得到了.
这在MatLab中工作(乘法,而不是代码),但我需要在python应用程序中使用它.
有人能告诉我我做错了什么吗?
您正在使用逐元素乘法- *
两个Numpy矩阵上的.*
运算符等效于Matlab中的运算符。使用
prod = numpy.dot(testmatrix, testmatrix.T)
Run Code Online (Sandbox Code Playgroud)