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

    function disp_result_da_model(da,X);
% Display computed DA Model. Result coeffs. are averaged by time.
% da - discriminant model
% X - data matrix

% last modified 4.10.05

old_format=get(0,'Format');
format short;
Coeff_mean=mean(da.coeff_data);
Coeff_var=var(da.coeff_data);
txt=sprintf('0=%.3f',-mean(da.discriminant_func));
for i=1:length(Coeff_mean)
        txt=[txt sprintf('%+.3f',Coeff_mean(i)) '*' kill_points(da.functions_txt{i})];
end
disp('________________________________________________________________');
disp('Model type (discriminant analysis):');
disp(sprintf(' First window length: %d sample points, \n Second window length: %d sample points',da.win1,da.win2));
disp(' Model:');
mod_type=['0=c0+' da.df_txt];
try
    e=sym(mod_type);   % recuire Symb. Toolbox
    pretty(e,80);
catch
     disp(mod_type);
end
disp('Result model:');
try
    e=sym(txt);   % recuire Symb. Toolbox
    pretty(e,80);
catch
     disp(txt);
end
disp(sprintf('\n Fisher criterion: mean= %6.4f, variance=%6.4f',mean(da.fisher),var(da.fisher)));
disp(' ');
str_arr={};
str_arr{1}='Coefficient';
str_arr{2}='-----------';
str_arr{3}='c0 (-discr.fun.)';
for i=1:length(da.coefficients_txt)
    str_arr{end+1}=da.coefficients_txt{i};
end
str_arr=align_with_blank(str_arr,4);
str_arr{1}=[str_arr{1} 'mean'];
str_arr{2}=[str_arr{2} '----'];
str_arr{3}=[str_arr{3} sprintf('%6.4f',-mean(da.discriminant_func))];
for i=1:length(da.coefficients_txt)
    str_arr{3+i} =[str_arr{3+i} sprintf('%6.4f',Coeff_mean(i))];
end

str_arr=align_with_blank(str_arr,4);
str_arr{1}=[str_arr{1} 'median'];
str_arr{2}=[str_arr{2} '------'];
str_arr{3}=[str_arr{3} sprintf('%6.4f',-median(da.discriminant_func))];
for i=1:length(da.coefficients_txt)
    str_arr{3+i} =[str_arr{3+i} sprintf('%6.4f',median(da.coeff_data(:,i)))];
end


% str_arr=align_with_blank(str_arr,4);
% str_arr{1}=[str_arr{1} 'expectation'];
% str_arr{2}=[str_arr{2} '-----------'];
% str_arr{3}=[str_arr{3} sprintf('%6.4f',expected_value(-da.discriminant_func))];
% for i=1:length(da.coefficients_txt)
%     str_arr{3+i} =[str_arr{3+i} sprintf('%6.4f',expected_value(da.coeff_data(:,i)))];
% end
str_arr=align_with_blank(str_arr,4);
str_arr{1}=[str_arr{1} 'variance'];
str_arr{2}=[str_arr{2} '---------'];
str_arr{3}=[str_arr{3} sprintf('%6.4f',var(da.discriminant_func))];
for i=1:length(da.coefficients_txt)
    str_arr{3+i} =[str_arr{3+i} sprintf('%6.4f',Coeff_var(i))];
end
str_arr=align_with_blank(str_arr,4);
str_arr{1}=[str_arr{1} '|mean/variance|'];
str_arr{2}=[str_arr{2} '---------------'];
str_arr{3}=[str_arr{3} sprintf('%6.4f',abs(mean(da.discriminant_func)/var(da.discriminant_func)))];
warning off MATLAB:divideByZero
for i=1:length(da.coefficients_txt)
    str_arr{3+i} =[str_arr{3+i} sprintf('%6.4f',abs(Coeff_mean(i)/Coeff_var(i)))];
end
warning on MATLAB:divideByZero

for i=1:length(str_arr)
    disp(str_arr{i})
end
disp('---------------------------------------------------------------------------')
disp(' ');    


disp('Here: ')
for i=1:length(X.name)
    STR=['      ' 'x' num2str(i) ' is ' X.name{i}];
    disp(STR)
end

format(old_format);



function s=kill_points(str);
s=[];
for i=1:length(str)
    if (str(i)=='.')
        if isempty(str2num(str(i-1)))|isempty(str2num(str(i+1)))
            continue
        end
    end
    s=[s str(i)];
end

function s=align_with_blank(s,N);
L=length(s);
l=[];
for i=1:L
    l=[l length(s{i})];
end
M=max(l);
max_length=M+N;
for i=1:L
    s{i}=[s{i} blanks(max_length-length(s{i}))];
end

function v=expected_value(X);
% [n,xout]=hist(X,ceil(length(X)^0.5));
% [m,I]=max(n);
% a=xout(I)-min(diff(xout))
% b=xout(I)+min(diff(xout))
% h=min([(b-a)/50 0.01])
% [n,xout]=hist(X,a:h:b);
% [m,I]=max(n);
% v=xout(I);
v=0;