How can I average a matrix of 105108X6 constructed every 5 minutes measured data to 15 min?
1 次查看(过去 30 天)
显示 更早的评论
Hello Matlab community,
I have a matrix (105108X6) of climate variables gathered every 5 minutes of one year, I wanna average this information every 15 minutes and store the info in a new matrix, how can I do that? I tried doing a loop like this:
dat_cal_15 = zeros(round(length(dat_cal)/3),1)
for i=1:round(length(dat_cal)/3)
for a = 3*((i-1)+1)-2
for b = 3*i
dat_cal(i,1)= round(mean(dat_cal(a:b)));
end
end
end
but is not working for all the columns....
thank you for your help
0 个评论
采纳的回答
KL
2017-12-6
编辑:KL
2017-12-6
I's suggest using a timetable.
Frist convert your matrix to timetable using array2timetable,
dat_cal_TT = array2timetable(X,'RowTimes',time_column_here)
and then use retime,
TT_15min_mean = retime(dat_cal_TT,min_15_time_vector,'mean')
create a time vector (min_15_time_vector) with your desired sample time.
4 个评论
KL
2017-12-6
I'm not sure what you mean but if you want to extract the values from the resulting timetable, you could probably use .Values property.
TT.Values
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!