Does Matlab eig always returns sorted values?

If you want to guarantee sorted-ascending values, just do an extra

if ~issorted(diag(D))
    [V,D] = eig(A);
    [D,I] = sort(diag(D));
    V = V(:, I);
end

to sort them the way you want.

Alternatively, use eigs:

[V,D] = eigs(A,size(A,1)-1)

Leave a Comment