filter function for aggregation of data

Hi everybody! I'm wondering if there is a way to solve the following problem in a more efficient way instead of a for cycle: I have a vector of hourly values and I would like to aggregate these values to 3 hour values with a moving window such that the first value would be the sum of the first three elements, the second value the sum of element 2,3 and 4, the third value the sum of element 3,4 and 5 and so on... I used a for loop but this takes me a lot of time. I knwo that this can be done with the filter function but I didn't understand how it works exactly. Does anybody know how to solve it? Thanks a lot Camilla

답변 (1개)

Thorsten
Thorsten 2015년 4월 27일

0 개 추천

x = randi(10, [1 10]); % sample data
F = 1/3*ones(1,3); % filter
xm3 = conv(x, F, 'valid');

댓글 수: 4

Thank you Thorsen but like this is makes the average, not the sum
True. To get the sum, just use the filter
F = ones(1,3);
thank you very much!
Thorsten
Thorsten 2015년 4월 27일
Please accept the answer.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 MATLAB에 대해 자세히 알아보기

질문:

2015년 4월 27일

댓글:

2015년 4월 27일

Community Treasure Hunt

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

Start Hunting!

Translated by