wolffd@0: function [evec, evals] = sort_evec(temp_evec, temp_evals, N) wolffd@0: wolffd@0: if ~isvectorBNT(temp_evals) wolffd@0: temp_evals = diag(temp_evals); wolffd@0: end wolffd@0: wolffd@0: % Eigenvalues nearly always returned in descending order, but just wolffd@0: % to make sure..... wolffd@0: [evals perm] = sort(-temp_evals); wolffd@0: evals = -evals(1:N); wolffd@0: if evals == temp_evals(1:N) wolffd@0: % Originals were in order wolffd@0: evec = temp_evec(:, 1:N); wolffd@0: return wolffd@0: else wolffd@0: fprintf('sorting evec\n'); wolffd@0: % Need to reorder the eigenvectors wolffd@0: for i=1:N wolffd@0: evec(:,i) = temp_evec(:,perm(i)); wolffd@0: end wolffd@0: end wolffd@0: