, UNIQUE ACCUMARRAY. , 4 . NaN, , NaN , :
[~,~,index] = unique(raw(:,1)); %
sumFcn = @(x) {sum(hankel([nan(3,1); x(1:numel(x)-3)],... %
x(numel(x)-3:end)),2)}; %
%
%
sumPerID = accumarray(index,raw(:,2),[],sumFcn); %
%
raw(:,2) = vertcat(sumPerID{:}) %# Place the results back into the second
%
raw =
2001 NaN
2001 NaN
2001 NaN
2001 5000
2001 6000
5555 NaN
5555 NaN
5555 NaN
5555 NaN
5555 55000
5555 75000
7777 NaN
7777 NaN
7777 NaN
7777 NaN