- 积分
- 19
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-5-1
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 奚若 于 2018-5-9 15:40 编辑
我要算1901-2016年每年各格点年降水量,希望得出Pre1901,Pre1902,,,,,,Pre2016这样的结果,但是最后得出的数据不合理,并且只能算到1913年,没有报错。请帮我看下哪里不对了。数据是月值格点数据。(觉得这个脚本难以继续,修改了新脚本,在后边,附新脚本工作区图片。)麻烦了
clear all;
clc;
fdir='F:\毕业论文\MATLAB\pre_mon_interp-0.1_nc_mask.nc';
data=ncinfo(fdir);
lon=ncread(fdir, 'longitude');
lat=ncread(fdir, 'latitude');
time=ncread(fdir,'time');
pre=ncread(fdir,'pre');
M=size(lon,1);%lon经度
N=size(lat,1);%lat纬度
L=size(time,1);
a=zeros(M,N);
n=1;
m=12;
i=1901;
for o=0
if m<1393;
for k= n:m;
pre1=pre(1:51,1:71,k);%某月的降水变化
a=a+pre1
eval(['Pre' num2str(i) '= a'])
n=n+12
m=m+12
i=i+1
end
end
end
再次更改了下脚本,可以出现Pre1901--2016,但陷入了死循环中,结果也不对,最后ctrl+c终止了。这咋闹。以下是新脚本。(图片为此脚本的相关图片
clc;
fdir='F:\毕业论文\MATLAB\mon_interp-0.1_nc_mask.nc';
data=ncinfo(fdir);
lon=ncread(fdir, 'longitude');
lat=ncread(fdir, 'latitude');
time=ncread(fdir,'time');)
pre=ncread(fdir,'pre');
M=size(lon,1);%lon经度
N=size(lat,1);%lat纬度
L=size(time,1);
a=zeros(M,N);
for n=1:12:1381;
for m=12:12:1392
for i=1901:2016
for k=n:m;
pre1=pre(1:51,1:71,k);
a=a+pre1;
%Pre(:,:,i)=a;
eval(['Pre' num2str(i) '= a']);
end;
end
end
end
|
|