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