Averaging and summing parts of a column based on date

2 次查看(过去 30 天)
Greetings Matlab community
I have some very large data sets and I am wanting to sum and average parts of a table column based on the date. I have multiple readings of e.g. temperature for a given date and want to both sum and average these for each given date and get a corresponding table with the results.
A VERY cut down version of the data is attached and I want to get a result that has three columns - the date, the average Maxium temperature and the Total max temp for each date.
Much appreciated

采纳的回答

per isakson
per isakson 2019-1-25
编辑:per isakson 2019-1-25
Ten hours without an answer. Here is the result from my first experiment with timetable. See retime Resample or aggregate data in timetable, and resolve duplicate or irregular times
%%
T = readtable('Matlab question.xlsx');
%%
TT = table2timetable( T, 'rowTimes','Var1' );
%%
dm = retime( TT, 'daily','mean' );
%%
dx = retime( TT, 'daily','max' );
%%
ds = retime( TT, 'daily','sum' );
  1 个评论
Wendy Cameron
Wendy Cameron 2019-1-30
Thank you. That works. I am now wondering if one can turn a timetable e.g. dm etc, back to a table?

请先登录,再进行评论。

更多回答(1 个)

Andrei Bobrov
Andrei Bobrov 2019-1-25
T = readtable('Matlab question.xlsx','Ra','A2:B109','ReadV',0);
out = rowfun(@tempfun,T,'G','Var1',...
'OutputV',...
{'MeanTemp' 'MaxTemp'});
function varargout = tempfun(x)
varargout = {mean(x),max(x)};
end

类别

Help CenterFile Exchange 中查找有关 Tables 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by