MATLAB:无循环平均时间序列数据?

MATLAB:无循环平均时间序列数据?,matlab,time-series,average,Matlab,Time Series,Average,我每隔30分钟测量了一些变量。时间戳以datevec或datenum格式提供。我想计算 a) 。。。每日平均值和 b) 。。。时间x的平均值,例如11:30时的温度、12:00时的温度等,在我的整个数据集上取平均值 虽然这或多或少可以用循环轻松完成,但我想知道是否有更简单/更方便的方法来处理时间序列,因为这毕竟是一项非常基本的任务 /编辑1:根据请求:考虑到datevec()输出存储在tvec中,数据存储在x中,使用唯一(…,'rows')分组并使用accumarray()累积: 如果您发布一些

我每隔30分钟测量了一些变量。时间戳以
datevec
datenum
格式提供。我想计算

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

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


/编辑1:根据请求:

考虑到
datevec()
输出存储在
tvec
中,数据存储在
x
中,使用
唯一(…,'rows')
分组并使用
accumarray()累积:


如果您发布一些示例数据,我可以用
accumarray()
提供解决方案。我希望100次测量就足够了:+1:任何使用
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)]