excelFile=''% 文件路径
A=xlsread(excelFile)
x=A(:,1);%时间序列
y=A(:,2);%径流数据列
N=length(y);
n=length(y);
% 正序列计算---------------------------------
% 定义累计量序列 Sk,长度=y,初始值=0
Sk=zeros(size(y));
% 定义统计量 UFk,长度=y,初始值=0
UFk=zeros(size(y));
% 定义 Sk 序列元素 s
s = 0;
% i 从 2 开始,因为根据统计量 UFk 公式,i=1 时,Sk(1)、E(1)、Var(1)均为 0
% 此时 UFk 无意义,因此公式中,令 UFk(1)=0
for i=2:n
for j=1:i
if y(i)>y(j)
s=s+1;
else
s=s+0;
end;
end;
Sk(i)=s;
E=i*(i-1)/4; % Sk(i)的均值
Var=i*(i-1)*(2*i+5)/72; % Sk(i)的方差
UFk(i)=(Sk(i)-E)/sqrt(Var);
end;
% ------------------------------正序列计算 end
% 逆序列计算---------------------------------
% 构造逆序列 y2,长度=y,初始值=0
y2=zeros(size(y));
% 定义逆序累计量序列 Sk2,长度=y,初始值=0
Sk2=zeros(size(y));
% 定义逆序统计量 UBk,长度=y,初始值=0
UBk=zeros(size(y));
% s 归 0
s=0;
% 按时间序列逆转样本 y
% 也可以使用 y2=flipud(y);或者 y2=flipdim(y,1);
for i=1:n