MATLAB: Calculate 10y returns out of monthly data

annualizereturns

hey guys,
i have monthly returns (1mil. simulations). Now i want to calculate corresponding 10 year returns. for example vextor x: 0.05 0.02 0.03 0.4 -0.21 …
what matlab should do now is to calculate: ((1+r(1))*(1+r(2))*…(1+r(120)))-1 and ((1+r(121))*(1+r(122))*…(1+r(240)))-1 and so on…
thx for your help

Best Answer

out = prod(1 + reshape(x,120,[])) - 1;
or
out = accumarray(ceil((1:numel(x))'/120),x(:),[],@(x)prod(1+x)-1);