数据矩阵的时间平均值
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))
假设有一个 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))