[SciPy-dev] [SciPy-user] scipy.linalg.eig() returns transposed eigenvector matrix

Pearu Peterson pearu at scipy.org
Mon Nov 14 03:48:54 EST 2005



On Sun, 13 Nov 2005, Travis Oliphant wrote:

> Robert Dick wrote:
>
>> scipy.linalg.eig() returns transposed eigenvector matrix

This is a matter of definition. scipy.linalg.eig and 
scipy.basic.linalg.eig return correct results according to their 
documentation. Just scipy.linalg.eig assumes that eigenvectors are 
returned column-wise, i.e.

   a * vr[:,i] = w[i] * vr[:,i]

holds. While scipy.basic.linalg.eig, that is copied from Numeric, assumes 
that eigenvectors are returned row-wise, i.e

   a * vr[i] = w[i] * vr[i]

holds.

Note that matlab returns eigenvectors column-wise, similar to 
scipy.linalg.eig, and that is how the matrix of eigenvectors is also 
usually defined.

I think it is unfortunate that Numeric eig returns eigenvectors row-wise, 
it is not a mathematically convenient definition that it uses.

Pearu




More information about the SciPy-Dev mailing list