MATLAB: Calculating annual means for different time periods

annual mean

Hello,
I am trying to calculate annual means from monthly data for a number of basins with different time periods.
my data looks something like this:
time (year/month) Amazon Congo .....
195101 6430 4356
195102 2530 7960
195103 1820 2060
..... ..... .....
..... ..... .....
..... ..... .....
200610 16200 NaN
200611 6540 NaN
200612 9870 NaN
and so on. In addition I have two variables specifying the start and end years of the records for each basin as they differ from one basin to another:
start end
195101 200012
195601 199312
197101 200612
..... .....
So my questions is: how can I tell matlab to calculate the mean of each year (mean 195101-195112 and so on) and also tell it to start and end calculations at a particular year depending on the basin?
Cheers, Anna

Best Answer

variant
corrected [14:14 MDT]
%{
data - your array (double array) in view :
data = [195101 6430 4356
195102 2530 7960
195103 1820 2060
200610 16200 NaN
200611 6540 NaN
200612 9870 NaN]
%}
dy = datevec(num2str(data(:,1)),'yyyymm');
d1 = [dy(:,1), data(:,2:end)];
t = unique(d1(:,1));
outdata = [t, nan(numel(t),size(data,2)-1)];
for j1 = 2:size(data,2)
t2 = ~isnan(d1(:,j1));
yrs = unique(d1(t2,1));
i1 = ismember(outdata(:,1),yrs);
outdata(i1,j1) = cellfun(@mean,mat2cell(data(t2,j1),histc(d1(t2,1),yrs),1));
end