www.gusucode.com > Matlab动力系统和时间序列分析工具箱 > Matlab动力系统和时间序列分析工具箱/lab432/toolbox/SSA/ssa_view_left_sing_vectors.m

    function ssa_view_left_sing_vectors(SSA,vectors_No);
% SSA_VIEW_LEFT_SING_VECTORS(SSA,vectors_No) plot left singular vectors of SSA
% example: ssa_view_left_sing_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 left singular vectors:',...
               'SelectionMode','multiple','ListString',str);
else
    ok=1;
    selection=vectors_No;
end

if ok
	N=length(selection);
	Fignumbs=floor(N/3);
	Additaxes=mod(N,3);
	tempHandleA=[];
	tempHandleF=[];
	for i=1:Fignumbs
        tempHandleF(i)=figure('Units','characters',...
            'Name',['Left singular vectors (eigen 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.U(:,selection(3*(i-1)+j))), grid on
            ylabel(num2str(selection(3*(i-1)+j)));
        end
	end
	if Additaxes==1
        tempHandleF(end+1)=figure('Units','characters',...
            'Name',['Left singular vectors (eigen vectors): ' num2str(selection(3*Fignumbs+1))],...
            'NumberTitle','off','color',[1 1 1]);
	end
	if Additaxes==2
        tempHandleF(end+1)=figure('Units','characters',...
            'Name',['Left singular vectors (eigen 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.U(:,selection(3*Fignumbs+i))), grid on
        ylabel(num2str(selection(3*Fignumbs+i)));
	end
	set(tempHandleA,'fontsize',8,'xlim',[1 length(SSA.singular_numbers)]);
end