MATLAB:平均没有循环的时间序列数据?

Fre*_*d S 3 matlab average time-series

我以30分钟的间隔测量了一些变量.时间戳有格式datevecdatenum格式.我想计算......

a)...每日平均值和
b)...... x在我的整个数据集上平均的时间平均值,例如11:30的温度,12点的温度等.

虽然这或多或少都可以通过循环轻松完成,但我想知道是否有更简单/更方便的方法来处理时间序列,因为这毕竟是一个非常基本的任务?

/编辑1:根据请求:点击我查看样本数据

Ole*_*leg 6

考虑到datevec()输出存储在tvec数据中x,与之一起分组unique(...,'rows')并累积accumarray():

% Group by day
[unDates, ~, subs] = unique(tvec(:,1:3),'rows');

% Accumulate by day
[unDates accumarray(subs, x, [], @mean)]

% Similarly by hour
[unHours, ~, subs] = unique(tvec(:,4:5),'rows');
[unHours accumarray(subs, x, [], @mean)]
Run Code Online (Sandbox Code Playgroud)