How can I compute the mean value over a time interval?
조회 수: 95 (최근 30일)
이전 댓글 표시
Hi veryone!
I have a matrix of 2 colums (one vector time, one vector values) and i'd like to compute the mean value over a time interval.
How can i do that?
thank you very much in advance
댓글 수: 0
답변 (2개)
Chad Greene
2021년 4월 23일
Hi Anna, welcome to the forum.
With these types of questions it always helps if you can provide a minimal working example. But you explained the problem well enough that I think I can come up with one.
So you have a matrix M whose columns correspond to time and some dependent variable. Let's say M looks like this:
M = [(1:100)' (1:100)'.^2+randn(100,1)];
Plot the first and second colums to see what kind of data we're looking at:
plot(M(:,1),M(:,2))
xlabel time
To get the average over some interval, say between t = 55 and t=65, get the indices of that range:
ind = M(:,1)>=55 & M(:,1)<65;
Then calculate the mean of column 2 over the interval:
mean(M(ind,2))
Eric Sofen
2021년 5월 7일
If you have, for example, data once per second for an hour and you want to calculate mean values for each minute, I'd recommend using a timetable to store the data and using the retime function. Something like this
% Synthetic data
t = timetable(seconds(0:3600)',rand(3601,1));
tAvg = retime(t,"minutely","mean");
tAvg.Time.Format = 'm' % Display times in minutes
댓글 수: 2
Coral Stancliffe-Caldicott
2022년 11월 29일
Hi,
If I were to have data once every 30 minutes for a year and wanted to calculate mean monthly values how would I adapt the above code?
Thanks
Eric Sofen
2022년 11월 29일
retime(t,"monthly","mean")
The NewTimeStep positional argument lists the possible automatic aggregations around calendar unit. If you wanted to do something custom, you can also specify a new time vector. For example, if you wanted to average into 10-day bins, you might construct a time vector something like:
tvNew = t.Time(1):days(10):t.Time(end)
retime(t,tvNew,"mean")
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Distribution Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!