Obter valores vetoriais integrados

Estou tentando integrar a função seno. Meu objetivo é obter não apenas o valor da área entre uma certa distância, mas também os valores específicos do curso integrado.

Uma maneira de conseguir isso é usando cumtrapz. Eu quero obter o mesmo resultado usando integral ou quad. Então, eu estou querendo saber se há algo como cumquad?

Tentei escrever algo para mim, mas funciona muito devagar e parece ser ainda pior que o cumtrapz. Mais tarde, quero integrar dados medidos. Portanto, não será tão simples quanto um seno.

Aqui está meu código atual:

a = 0; b = 10;

x = a:0.1:b; 
y = 2*sin(3*x);
pp = spline(x,y);

y2=zeros(1,length(y));
y3=zeros(1,length(y));

y2(1)=integral(@(x)ppval(pp,x),x(1),x(2));
y3(1)=integral(@(x)ppval(pp,x),x(1),x(2));
for a=2:(length(y)-1)

   y2(a) = y2(a-1)+integral(@(x)ppval(pp,x),x(a-1),x(a));
   y3(a) = y3(a-1)+quad(@(x)ppval(pp,x),x(a-1),x(a));

end
y4=cumtrapz(x,y);
% y5=cumsum(y);

plot(x,y)
hold on
plot(x,y2,'-ro')
plot(x,y3,'-kx')
plot(x,y4,'g')
syms x % compare with analytical result
ya=2*sin(3*x);
ya5=int(ya)+(2/3);
ezplot(x,ya5)

questionAnswers(1)

yourAnswerToTheQuestion