A few things to note: - By definition `A·v = λ·v`, eigenvectors are *[not unique][1]*. You can multiply by any constant and still get another valid eigenvector. [The convention in MATLAB][2] is that for `eig(A)`, the eigenvectors are scaled so that the norm of each is 1.0, and for `eig(A,B)`, the eigenvectors are not normalized ([see here][3] for an example). Here is the [relevant part in the documentation][4]: > `V`: right eigenvectors, returned as a square matrix whose columns are > the right eigenvectors of `A` or generalized right eigenvectors of the > pair `(A,B)`. The form and normalization of `V` depends on the > combination of input arguments: > > - `[V,D] = eig(A)` returns matrix `V`, whose columns are the right eigenvectors of `A` such that `A*V = V*D`. The eigenvectors in `V` are > normalized so that the 2-norm of each is 1. > > - `[V,D] = eig(A,'nobalance')` also returns matrix `V`. However, the 2-norm of each eigenvector is not necessarily 1. > > - `[V,D] = eig(A,B)` and `[V,D] = eig(A,B,algorithm)` returns `V` as a matrix whose columns are the generalized right eigenvectors that > satisfy `A*V = B*V*D`. The 2-norm of each eigenvector is not > necessarily 1. In this case, `D` contains the generalized eigenvalues > of the pair `(A,B)`, along the main diagonal. > > If `A` is symmetric and `B` is symmetric positive definite, then the eigenvectors in `V` are normalized so that the 2-norm of each is > 1. - In addition, eigenvalues are *[not][5] [sorted][6]*. You are only guaranteed that the columns of `V` are the corresponding right eigenvectors to the eigenvalues in `D`. That's not the same as `svd`. In fact, [there is no total ordering of complex numbers][7]. The convention in MATLAB is that the [`sort` function][8] sorts complex elements first by magnitude (i.e. `abs(x)`), then by phase angle on the `[-pi,pi]` interval (i.e. `angle(x)`) if magnitudes are equal. Having considered the above, when solving the generalized eigenvalue problem, you should be getting similar results to MATLAB by using DGGEV routine in LAPACK. [1]: http://stackoverflow.com/a/13041293/97160 [2]: http://stackoverflow.com/a/18152804/97160 [3]: http://stackoverflow.com/a/6748385/97160 [4]: http://www.mathworks.com/help/matlab/ref/eig.html#outputarg_V [5]: http://stackoverflow.com/a/13704582/97160 [6]: http://stackoverflow.com/a/3293855/97160 [7]: http://math.stackexchange.com/q/492890/133 [8]: http://www.mathworks.com/help/matlab/ref/sort.html