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!