平均每天包含一周的小时数据

时间:2015-06-04 13:30:42

标签: matlab matrix average mean days

我有一个24 * 7行的矩阵(列周的每小时数据)和52列(一年中的星期)。

我想计算每周的平均日(24小时)(由24×52矩阵计算)。 Normaly我会reshape来自每周的向量,这样我就可以有24行和7列然后我可以从每小时得到平均值,从而产生该周的平均日。

然而,这一年有52周,所以这reshape是不现实的。 有没有人知道如何计算一天中每小时的平均值,以便在不重塑每周初始列的情况下创建一个平均日?

2 个答案:

答案 0 :(得分:2)

我不明白为什么不使用reshape

reshaped = reshape( allData, [24 7 52] );
avg = mean( reshaped, 2 ); %// average over the seven days

您最后可能想要squeeze结果......

答案 1 :(得分:0)

如果你真的真的不想使用reshape,可以使用accumarray 首先构建将24 * 7×52输入中的输入与24×52输出相关的指数:

rows = repmat( 1:24, [1 7*52] );
cols = repmat( 1:52, [7*24 1] );
avg = accumarray( [rows(:) cols(:)], allData(:), [24 52], @mean );