How to average seconds data to minutes data?
5 次查看(过去 30 天)
显示 更早的评论
I have a one Hz set of data for whole day, so i would like to average this seconds data into each minutes data. Please give your code and suggestions.
Thanks you.
0 个评论
回答(1 个)
Dave B
2020-11-6
It sounds like you want to use the first column of your CSV which has times, and for each minute extract compute the average of the remaining columns.
tbl = readtable('PGM.csv'); % Read the data in
% Convert first column to a datetime the date part is arbitrary here (because they're not
% supplied in the file), but it's so easy to do this with the datetime type!
tbl.Var1 = datetime(tbl.Var1,'InputFormat','HH:mm');
result=groupsummary(tbl,"Var1","minute","mean",["Var2" "Var3" "Var4" "Var5"]);
% The results for the 4 columns are in result.mean_Var2, result.mean_Var3 etc.
% Additional notes:
% You can strip off the date part and go back to a string using:
dt = extractAfter(string(result.minute_Var1)," ");
% You could plot the first column of data with:
plot(datetime(extractAfter(string(result.minute_time),"" "")),result.mean_Var2)
A great feature of groupsummary,is that if you wanted some other summary statistics in addition to mean those are easy to get in the same shot, see the documentation for details.
2 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Preprocessing Data 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!