www.gusucode.com > Matlab动力系统和时间序列分析工具箱 > Matlab动力系统和时间序列分析工具箱/lab432/gui/gui_data_statistics.m
function gui_data_statistics; % DATA_STATISTICS display basic statistics for time series % % last modified 12.09.04 global TS str=TS.name; [selection,ok] = listdlg('PromptString','Select data:',... 'SelectionMode','multiple','ListString',str); if ok % statistics(TS.data(:,selection)); TS.data=TS.data(:,selection); TS.name=TS.name(selection); else return end fprintf('\nDisplaying statistics\n_____________________\n'); L=length(TS.name); Stat=zeros(7,L); for i=1:L try Stat(1,i)=min(TS.data(:,i)); % -min Stat(2,i)=max(TS.data(:,i)); % -max Stat(3,i)=Stat(2,i)-Stat(1,i); % -range Stat(4,i)=mean(TS.data(:,i)); % -mean Stat(5,i)=median(TS.data(:,i)); % -median Stat(6,i)=std(TS.data(:,i)); % -std Stat(7,i)=var(TS.data(:,i)); % -var catch Stat(:,i)=NaN*ones(7,L); disp('Empty time series'); end end str_arr={}; str_arr{1}='Data name'; str_arr{2}='---------'; for i=1:L str_arr{end+1}=TS.name{i}; end str_arr=align_with_blank(str_arr,4); str_arr{1}=[str_arr{1} 'min']; str_arr{2}=[str_arr{2} '---']; for i=1:L str_arr{2+i} =[str_arr{2+i} sprintf('%6.4f',Stat(1,i))]; end str_arr=align_with_blank(str_arr,4); str_arr{1}=[str_arr{1} 'max']; str_arr{2}=[str_arr{2} '---']; for i=1:L str_arr{2+i} =[str_arr{2+i} sprintf('%6.4f',Stat(2,i))]; end str_arr=align_with_blank(str_arr,4); str_arr{1}=[str_arr{1} 'range']; str_arr{2}=[str_arr{2} '-----']; for i=1:L str_arr{2+i} =[str_arr{2+i} sprintf('%6.4f',Stat(3,i))]; end str_arr=align_with_blank(str_arr,4); str_arr{1}=[str_arr{1} 'mean']; str_arr{2}=[str_arr{2} '----']; for i=1:L str_arr{2+i} =[str_arr{2+i} sprintf('%6.4f',Stat(4,i))]; end str_arr=align_with_blank(str_arr,4); str_arr{1}=[str_arr{1} 'median']; str_arr{2}=[str_arr{2} '------']; for i=1:L str_arr{2+i} =[str_arr{2+i} sprintf('%6.4f',Stat(5,i))]; end str_arr=align_with_blank(str_arr,4); str_arr{1}=[str_arr{1} 'std']; str_arr{2}=[str_arr{2} '---']; for i=1:L str_arr{2+i} =[str_arr{2+i} sprintf('%6.4f',Stat(6,i))]; end str_arr=align_with_blank(str_arr,4); str_arr{1}=[str_arr{1} 'var']; str_arr{2}=[str_arr{2} '---']; for i=1:L str_arr{2+i} =[str_arr{2+i} sprintf('%6.4f',Stat(7,i))]; end for i=1:length(str_arr) disp(str_arr{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