我在Matlab中有一个行向量x,它包含164372个组件。我现在想要将这些元素分组到另一个向量y中,该向量必须包含52个组件。向量y的第一个元素必须是向量x的前164372/52 = 3161个元素的平均值,y的第二个元素必须是x的下一个3161个元素的平均值,等等。这一直持续到我采取向量x中所有52个元素的平均值,并将它们放在y中。
如何在Matlab中实现这一点?是否有一些内置函数可以将元素从某个索引求和到另一个索引?
非常感谢您的帮助!
答案 0 :(得分:3)
x = rand(1,164372); % example data
N = 52; % block size. Assumed to divide numel(x)
result = mean(reshape(x, numel(x)/N, []), 1)
这样做是:将矢量重新整形为通常column-major order中的52行矩阵,然后计算每列的平均值。