Compute cumulative sum of a column vector without for loop
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
the cyclist
am 30 Mär. 2012
The filter() command is one way:
tmp = filter(ones(1,spacing+1),1,A);
solution = tmp(spacing+1:end)
0 Kommentare
Weitere Antworten (1)
C.J. Harris
am 30 Mär. 2012
A=(1:10)'; % column vector
spacing = 4; % scalar
solution = arrayfun(@(n) sum(A(n):A(n+spacing)), 1:length(A)-spacing)';
0 Kommentare
Siehe auch
Kategorien
Mehr zu Get Started with MATLAB finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!