How to calculate the cumulative value by consequetive hours
조회 수: 1 (최근 30일)
이전 댓글 표시
Example I have these values to calculate them every 1 to 5 hours cumulative and continuous;
Data: 1 2 3 4 5 6 7 8
Answer for cumulative every 2 hours will be; 3 5 7 9 11 13 15
Answer for cumulative every 3 hours will be; 6 9 12 15 18 21
Answer for cumulative every 4 hours will be; 10 14 18 22 26
And answer for cumulative every 5 hours will be; 15 20 25 30
Thank you in advance.
댓글 수: 1
Jan
2013년 5월 22일
Posting the inputs in valid Matlab syntax has the advantages to be clear and to be usable for suggestions by copy&paste. I cannot guess, what "answer wil be" exactly means.
답변 (2개)
Teja Muppirala
2013년 5월 22일
data = [1 2 3 4 5 6 7 8];
for n = 2:5
conv(data,ones(1,n),'valid')
end
This gives me:
ans =
3 5 7 9 11 13 15
ans =
6 9 12 15 18 21
ans =
10 14 18 22 26
ans =
15 20 25 30
댓글 수: 1
Teja Muppirala
2013년 5월 22일
I am not sure how you plan to store/use these values, but you might make use of cell arrays to store data of unequal lengths.
Iain
2013년 5월 20일
Where n is how many data points you want to do it for:
cumulative = cumsum(Data);
subtract = cumsum([zeros(1,n) Data(1:(end-n))]);
cumulative_n = cululative - subtract;
댓글 수: 2
Iain
2013년 5월 22일
My apologies. cumulative_n = [cumulative(n) (cumulative(n+1:end)-subtract(n+1:end))];
With 8 data points, and n = 8, you will only get 1 value.
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!