Daniel趋势分析在matlab上的实现

原理与计算步骤

Daniel趋势分析在matlab上的实现_第1张图片

数据集

    某县1965-2013年年际气温数据,对其各时期进行Daniel趋势分析。

matlab代码

clc;clear;
data=[18.484 	18.664 	18.280 	18.498 	17.995 	18.117 	18.154 	18.388 	18.619 	18.243 	18.401 	17.742 	18.236 	18.377 	18.322 	18.326 	18.319 	18.251 	18.345 	17.531 	17.849 	18.075 	18.724 	17.890 	18.140 	18.583 	18.490 	18.034 	18.110 	18.608 	18.055 	17.962 	18.439 	19.400 	18.700 	18.465 	18.689 	18.999 	18.756 	18.296 	18.672 	19.049 	18.974 	18.796 	19.526 	19.257 	18.678 	19.008 	19.358 
];
Y={};B=[];c=[];
Y{1,1}=data;
Y{1,2}=data(:,1:5);
Y{1,3}=data(:,6:15);
Y{1,4}=data(:,16:25);
Y{1,5}=data(:,26:35);
Y{1,6}=data(:,36:49);
[c,N]=size(Y);
for j=1:N
    y1=Y{1,j};
    y2=Y{1,j};
    [r,n]=size(y1);
    for i=1:n
       for j1=i+1:n
           if y2(1,i) > y2(1,j1) 
            t=y2(1,i);y2(1,i) = y2(1,j1);y2(1,j1)=t;
           end
       end
    end
    k=0;
    for i=1:n
        for j1=1:n
            if y1(1,i)==y2(1,j1)
                k=k+1;
                c(1,k)=j1;
                break
            end
        end
    end
    s=0;
    for i=1:n
       s=s+(c(1,i)-i)^2;
    end
    B(j,1)=1 - (6 * s / (n ^ 3 - n));
end
disp('各时期秩相关系数为:')
disp(B)

运行结果

 

年份

Rs

趋势

Wp

显著性

1965-2013

0.550

上升

0.238

显著

1965-1969

-0.500

下降

0.900

不显著

1970-1979

0.127

上升

0.564

不显著

1980-1989

-0.297

下降

0.564

不显著

1990-1999

0.285

上升

0.564

不显著

2000-2013

0.591

上升

0.464

显著

如果对你有帮助,请点下赞,予人玫瑰手有余香!

时时仰望天空,理想就会离现实越来越近!

你可能感兴趣的:(matlab)