www.gusucode.com > Matlab动力系统和时间序列分析工具箱 > Matlab动力系统和时间序列分析工具箱/lab432/toolbox/SSA/ssa_view_elementary_vectors.m
function ssa_view_elementary_vectors(SSA,vectors_No); % SSA_VIEW_ELEMENTARY_VECTORS(vectors_No) plot elementary vectors of SSA % example: ssa_view_elementary_vectors(SSA,[1 3 4 5 7 9]); % % last modified 10.02.05 str={}; for i=1:length(SSA.singular_numbers) str{i}=num2str(i); end if nargin<2 [selection,ok] = listdlg('PromptString','Select elementary vectors:',... 'SelectionMode','multiple','ListString',str); else ok=1; selection=vectors_No; end if ok Sn=SSA.singular_numbers; U=SSA.U; V=SSA.V; delay=SSA.delay; N=length(selection); Fignumbs=floor(N/3); Additaxes=mod(N,3); tempHandleA=[]; tempHandleF=[]; for i=1:Fignumbs tempHandleF(i)=figure('Units','characters',... 'Name',['Elementary vectors: ' num2str(selection(3*(i-1)+1)) ',' num2str(selection(3*(i-1)+2)) ',' num2str(selection(3*(i-1)+3))],... 'NumberTitle','off','color',[1 1 1]); for j=1:3 tempHandleA=[tempHandleA subplot(3,1,j)]; plot(ssa_get_elementary_vector(Sn(selection(3*(i-1)+j)),U(:,selection(3*(i-1)+j)),V(:,selection(3*(i-1)+j)),delay)), grid on ylabel(num2str(selection(3*(i-1)+j))); end end if Additaxes==1 tempHandleF(end+1)=figure('Units','characters',... 'Name',['Elementary vectors: ' num2str(selection(3*Fignumbs+1))],... 'NumberTitle','off','color',[1 1 1]); end if Additaxes==2 tempHandleF(end+1)=figure('Units','characters',... 'Name',['Elementary vectors: ' num2str(selection(3*Fignumbs+1)) ',' num2str(selection(3*Fignumbs+2))],... 'NumberTitle','off','color',[1 1 1]); end for i=1:Additaxes tempHandleA=[tempHandleA subplot(3,1,i)]; plot(ssa_get_elementary_vector(Sn(selection(3*Fignumbs+i)),U(:,selection(3*Fignumbs+i)),V(:,selection(3*Fignumbs+i)),delay)), grid on ylabel(num2str(selection(3*Fignumbs+i))); end set(tempHandleA,'fontsize',8,'xlim',[1 length(SSA.base_data)]); end