b=a(1):a(i):sum(a);
C'è un errore qui. Praticamente in questa maniera il vettore b sarà costruito come b = [a(1), a(1)+a(i), a(1)+2*a(i), ..., sum(a)], nel caso sum(a)-a(i) non fosse divisibile per a(i), viene creato il medesimo vettore fino al valore subito prima di sum(a).
Considera che nel tuo caso devi agire su ogni componente di b. Questa è una possibile soluzione:
b = zeros(1,length(a));
for i = 1:length(a)
%creo un vettore di appoggio costruito come c = [a(1) a(2) ... a(i-1) a(i)]
c = a(1:i);
b(i) = sum(c);
end