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

    function view_da_coeff(da,coeff_names);
% VIEW_DA_COEFF plot selected discriminant analysis coefficients
% da - discriminant model
% using: view_da_coeff(coeff_names);
% example: view_da_coeff(da,{'c0 (-discr. fun.)' 'c1' 'c3' 'c22'});
%
% last modified 7.02.05


str=da.coefficients_txt;
str=[{'c0 (-discr. fun.)'} str];
if nargin<2
	[selection,ok] = listdlg('PromptString','Select coefficients:',...
                    'SelectionMode','multiple','ListString',str);
else 
    ok=0;
    selection=[];
    for i=1:length(coeff_names)
        for j=1:length(str)
            if strcmp(str{j},coeff_names{i})
                ok=1;
                selection=[selection j];
            end
        end
    end
end
            
if ok
    Data=[-da.discriminant_func da.coeff_data];
    N=length(selection);
    Fignumbs=floor(N/3);
    Additaxes=mod(N,3);
    tempHandleA=[];
    tempHandleF=[];
    for i=1:Fignumbs
        tempHandleF(i)=figure('Units','characters',...
            'Name',['Discriminant analysis coefficients: ' num2str(selection(3*(i-1)+1)) ',' num2str(selection(3*(i-1)+2)) ',' num2str(selection(3*(i-1)+3)) ' (' str{selection(3*(i-1)+1)} ', ' str{selection(3*(i-1)+2)} ', ' str{selection(3*(i-1)+3)} ')'],...
            'NumberTitle','off','color',[1 1 1]);
        for j=1:3
            tempHandleA=[tempHandleA subplot(3,1,j)];
            plot(da.time,Data(:,selection(3*(i-1)+j))), grid on;
            set(ylabel(str{selection(3*(i-1)+j)}),'Interpreter','none');
        end
    end
    if Additaxes==1
        tempHandleF(end+1)=figure('Units','characters',...
            'Name',['Discriminant analysis coefficients: ' num2str(selection(3*Fignumbs+1))  ' (' str{selection(3*Fignumbs+1)} ' )'],...
            'NumberTitle','off','color',[1 1 1]);
    end
    if Additaxes==2
        tempHandleF(end+1)=figure('Units','characters',...
            'Name',['Discriminant analysis coefficients: ' num2str(selection(3*Fignumbs+1)) ',' num2str(selection(3*Fignumbs+2)) ' (' str{selection(3*Fignumbs+1)} ', ' str{selection(3*Fignumbs+2)} ')'],...
            'NumberTitle','off','color',[1 1 1]);
    end
    for i=1:Additaxes
        tempHandleA=[tempHandleA subplot(3,1,i)];
        plot(da.time,Data(:,selection(3*Fignumbs+i))), grid on;
        set(ylabel(str{selection(3*Fignumbs+i)}),'Interpreter','none');
    end
    set(tempHandleA,'fontsize',8,'xlim',[min(da.time) max(da.time)]);
end