我收到此错误:
"Attempted to access v(2); index out of bounds because numel(v)=1.
Error in extractperiod10 (line 8)
v(month)=v(month) + u;"
我无法弄清楚错误是什么......我用这个来调用函数:
extractperiod10(TEMPUF,@extractperiod, @periodmean,1979,3).
我使用TEMPUF的文件是一个包含17166行和7列的矩阵,其中包含当天的温度和日期以及相应的日期。
my extractperiod10.m
function v=extractperiod10(file, extractperiod, periodmean,year,column)
v=zeros(12,1);
for month=1:12
for year=year:year+9
p=extractperiod(file,year,month,column);
u=periodmean(p);
v(month)=v(month) + u;
end
v=mean(v);
end
end
我的periodmean.m(有些值是-999,我不想在计算中使用它们):
function M=periodmean(values)
invalid = -999;
valid=find(values ~= invalid);
M=mean(values(valid));
end
my extractperiod.m
function T=extractperiod(file,year,month,col)
y=floor(file(:,1)/100);
match=find(y==year*100 + month);
T=file(match,col);
end
编辑:
function v=extractperiod10(file, extractperiod, periodmean,column)
v=zeros(12,1);
for month=1:12
for y=1970:1979%y=year:1:year:+9 %
p=extractperiod(file,y,month,column);
u=periodmean(p);
v(month)=v(month) + u;
end
v(month)=mean(v);
end
v2=zeros(12,1);
for month=1:12
for y2=2000:2009
p2=extractperiod(file,y,month,column);
u2=periodmean(p2);
v2(month)=v2(month) + u2;
end
v2(month)=mean(v2);
end
v=[v,v2];
end