数据矩阵的时间平均值

Temporal average of a data Matrix

假设有一个 24x5 矩阵 M,其中包含 5 种不同变量类型的 1 小时数据(每个 24 个值)。

我喜欢对数据进行平均,例如4小时均值。

有没有比这样的三个重塑更好的方法?

M = reshape( nanmean( reshape( reshape(M,1,[]), 4, [] ) ), [], 5)

或者更适合阅读:

M = reshape(M,1,[]);
M = reshape(M,4,[]);
M = nanmean(M);
M = reshape(M,[],5);

感谢您的回答。

reshape 在 MATLAB 中不是一项代价高昂的操作,因为它只会改变数据的寻址方式,不会触及或复制底层数据。

话虽这么说,您真的只需要调用一次 reshape

means = squeeze(nanmean(reshape(M, 4, 6, []), 1))