Computes the eigenvalues of a general matrix.


va = eig(x)

x (NxN matrix or KxNxN array) – data used to compute the eigenvalues.


va (Nx1 vector or KxNx1 array) – the eigenvalues of x.


x = {  0.5  1.2  0.3,
       0.6  0.9  0.2,
       0.8  1.5  0.0 };

va = eig(x);

After the above code, va will equal:


To calculate eigenvalues and eigenvectors see eigv(). To calculate generalized eigenvalues and eigenvectors, see lapgeig(), or lapgeigv().


If x is an array, va will be an array containing the eigenvalues of each 2-dimensional array described by the two trailing dimensions of x. For example, if x is a 10x4x4 array, va will be a 10x4x1 array containing the eigenvalues of each of the 10 4x4 arrays contained in x.


If the eigenvalues cannot all be determined, va[1] is set to an error code. Passing va[1] to the scalerr() function will return the index of the eigenvalue that failed. The eigenvalues for indices \(scalerr(va[1])+1 \to N\) should be correct.

Error handling is controlled with the low bit of the trap flag.

trap 0

set va[1] and terminate with message

trap 1

set va[1] and continue execution

Invalid inputs, such as an \(\infty\), missing value or NaN will cause an error. If the trap is set to 1, va will be set to a scalar error code and program execution will continue. Passing this scalar error code to the scalerr() function will return -1.

Eigenvalue ordering

The eigenvalues are unordered except that complex conjugate pairs of eigenvalues will appear consecutively with the eigenvalue having the positive imaginary part first.

See also

Functions eigh(), eighv(), eigv()