- 积分
 - 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 
 |   
 
 
 
 |