For given vector, make a "averaged vector"

2 次查看(过去 30 天)
For a given 1 by 1000 vector A = (a1 a2 a3 a4 so on,,a1000) and interger n
I want to make vector
B = (b1 b2 b3 so on,,b(1000-n+1))
with b1 = a1 + a2 + a3 ...+a(n), b2 = a2 + a3 + ....+a(n+1), b(1000-n+1) = a(1000-n+1)+a(1000-n+2)+...a(1000)
Please help me. How can i make such vector B??

采纳的回答

Jan
Jan 2017-12-17
编辑:Jan 2017-12-17
b = movsum(a, [0, n], 'Endpoints', 'discard')

更多回答(1 个)

Walter Roberson
Walter Roberson 2017-12-17
temp = [0, cumsum(A)];
B = temp(n+1:end) - temp(1:end-n);

类别

Help CenterFile Exchange 中查找有关 Just for fun 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!