samer@4: function [r1,r2]=eigs(T,I) samer@4: % eigs - Return selected eigs relative to order by magnitude samer@4: % samer@4: % eigs :: [[N,N]], [[M]->[N]] ~'M indices between 1 and N' -> [[M]]. samer@4: % eigs :: [[N,N]], [[M]->[N]] ~'M indices between 1 and N' -> [[N,M]], [[M]]. samer@4: samer@4: if nargout==1 samer@4: L0=eig(T); samer@4: [dummy,ord]=sort(-abs(L0)); samer@4: r1=L0(ord(I)); samer@4: else samer@4: [V0,D0]=eig(T); L0=diag(D0); samer@4: [dummy,ord]=sort(-abs(L0)); samer@4: r1=V0(:,ord(I)); samer@4: r2=L0(ord(I)); samer@4: end