Compute cumulative sum of a column vector without for loop
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
For each index of a column vector , I want to compute the sum from index to index+spacing. spacing is an integer.
My aim is not to use for-loop but I didn't manage to find a way to avoid it:
A=(1:10)'; % column vector
spacing = 4; % scalar
solution = zeros(length(A)-spacing,1);
for index=1:length(A)-win % equals 6 in this example
solution(index)=sum(A(index:index+spacing));
end
solution =
15
20
25
30
35
40
Thanks for your help!
Aurélien
0 comentarios
Respuesta aceptada
the cyclist
el 30 de Mzo. de 2012
The filter() command is one way:
tmp = filter(ones(1,spacing+1),1,A);
solution = tmp(spacing+1:end)
0 comentarios
Más respuestas (1)
C.J. Harris
el 30 de Mzo. de 2012
A=(1:10)'; % column vector
spacing = 4; % scalar
solution = arrayfun(@(n) sum(A(n):A(n+spacing)), 1:length(A)-spacing)';
0 comentarios
Ver también
Categorías
Más información sobre Matched Filter and Ambiguity Function en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!