Conflicting eigen vector outputs between Matlab and Numpy
It's not immediately obvious, but the eigenvectors you are being returned are actually the same in both cases. Try the following:
>>> matlab_eigvec = np.array([[0.0896+0.6789j, 0.0953+0.7225j],... [-0.7288+0.j, 0.6848+0.j]])>>> >>> f1, f2 = matlab_eigvec.T # matlab eigenvectors>>> e1, e2 = eig_vec.T # numpy eigenvectors>>> f1/e1array([-0.13084653-0.99142531j, -0.13079065-0.99146862j])>>> f2/e2array([-0.13077050-0.99141326j, -0.13078845-0.99145198j])
So you can get the matlab eigenvectors by multiplying the numpy ones by -0.13-0.99j
, i.e. they are colinear and therefore the same as far as eigenvectors are concerned.