23

転置を乗じた行列の固有値を見つけようとしましたが、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アプリケーションで使用する必要があります。

誰かが私が間違っていることを教えてもらえますか?

4

2 に答える 2

27

MATLABを知っているので、このチュートリアルが役立つかもしれません。

また、関数を掛けtestmatrixてみてください。dot()numpy.dot(testmatrix,testmatrix.T)

どうやらnumpy.dot行列乗算のために配列間で使用されています!*演算子は要素ごとの乗算用です(MATLAB.*の場合)。

于 2010-07-09T13:42:40.870 に答える
8

要素ごとの乗算を使用しています - 2 つの Numpy 行列の演算子は、Matlabの演算子*と同等です。.*使用する

prod = numpy.dot(testmatrix, testmatrix.T)
于 2010-07-09T13:44:46.717 に答える