- 积分
- 7205
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2019-3-17
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 帅帅f 于 2020-5-12 17:35 编辑
其中这一步的意思是:A1=[];
for is=1:scale
A1=[A1,Data(is:length(Data)-scale+is)];
end
XS=sum(A1,2)
Data是降雨量数据。如果计算尺度(scale=3),那么A1就变成了n行3列的数据,第一列是从第一个月降水开始,第二列是从第二个月降水开始,第三列是从第3个月降水开始,再使用求和工具sum,使矩阵A1变成n行1列的数据,也就是上面的XS。
for is=1:nseas
tind=is:nseas:length(XS);%这里的nseas取12,当is从1开始取时,tind的矩阵包括了研究时期所有1月份的降雨量。当is取2时,以此类推。
Xn=XS(tind);
[zeroa]=find(Xn==0);%找出降雨量为0的位置
Xn_nozero=Xn;Xn_nozero(zeroa)=[];
q=length(zeroa)/length(Xn);%降雨量为0的概率
parm=gamfit(Xn_nozero);%拟合pdf
Gam_xs=q+(1-q)*gamcdf(Xn,parm(1),parm(2));%看过spi计算原理的都知道当考虑降雨的等于0的情况,伽马函数会作调整。
Z(tind)=norminv(Gam_xs);%转换为标准正态分布
end
代码来自mathworks.cn 由 Taesam Lee编写
|
-
-
SPI.m
1.04 KB, 下载次数: 34, 下载积分: 金钱 -5
|