Fre*_*d S 3 matlab average time-series
我以30分钟的间隔测量了一些变量.时间戳有格式datevec
或datenum
格式.我想计算......
a)...每日平均值和
b)...... x
在我的整个数据集上平均的时间平均值,例如11:30的温度,12点的温度等.
虽然这或多或少都可以通过循环轻松完成,但我想知道是否有更简单/更方便的方法来处理时间序列,因为这毕竟是一个非常基本的任务?
/编辑1:根据请求:点击我查看样本数据
考虑到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)