本文主要是介绍曼-肯德尔(Mann-Kendall)趋势检验法在matlab上的实现 有完整代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
曼-肯德尔(Mann-Kendall)趋势检验法在matlab上的实现 有完整代码
Matlab部分代码如下
for i=2:nfor j=1:iif y2(i)>y2(j)s=s+1;elses=s+0;endendSk2(i)=s;E=i*(i-1)/4; Var=i*(i-1)*(2*i+5)/72;UBk(i)=0-(Sk2(i)-E)/sqrt(Var);
end
UBk2=zeros(size(y));
for i=1:nUBk2(i)=UBk(n-i+1);
end
h1=plot(x,UFk,'r-','linewidth',1.5);
hold on
h2=plot(x,UBk2,'b-.','linewidth',1.5);
axis([min(x),max(x),-5,6]);
xlabel('年份','FontName','TimesNewRoman','FontSize',12);
ylabel('时间序列数据','FontName','TimesNewRoman','Fontsize',12);
hold on
plot(x,0*ones(N,1),'-.','linewidth',1);
ylim([-3 7]);
h3=plot(x,1.96*ones(N,1),':','linewidth',1);
plot(x,-1.96*ones(N,1),':','linewidth',1);
legend([h1 h2 h3],'UF统计量','UB统计量','0.05显著水平','Location','NorthEast');
f1=UFk;
f2=UBk2;
运行结果
需要完整的代码加我qq 398292861 备注来意
这篇关于曼-肯德尔(Mann-Kendall)趋势检验法在matlab上的实现 有完整代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!