我试图找到一个矩阵的特征值乘以它的转置,但是我无法使用numpy做到这一点。

testmatrix = numpy.array([[1,2],[3,4],[5,6],[7,8]])
prod = testmatrix * testmatrix.T
print eig(prod)

我希望该产品获得以下结果:
5    11    17    23
11    25    39    53
17    39    61    83
23    53    83   113

和特征值:
0.0000
0.0000
0.3929
203.6071

相反,当ValueError: shape mismatch: objects cannot be broadcast to a single shape与它的转置相乘时,我得到了testmatrix

这在MatLab中有效(乘法,而不是代码),但我需要在python应用程序中使用它。

有人可以告诉我我在做什么错吗?

最佳答案

您可能会发现tutorial非常有用,因为您了解MATLAB。

另外,请尝试将testmatrixdot()函数相乘,即numpy.dot(testmatrix,testmatrix.T)
显然 numpy.dot 用于数组之间的矩阵乘法! *运算符用于逐元素乘法(在MATLAB中为.*)。

关于python - numpy转置乘法问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3213105/

10-12 21:27