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;