让我在Matlab中有一个大小为1000的向量x
。我想生成一个长度为10的向量y
,其中每个组件包含来自向量x
的100条记录的平均值。
我的尝试非常简单
for i=1:10
y(i) = mean(x((1:100)+(i-1)*100));
end
我想知道是否有内置命令或更优雅的解决方案。
答案 0 :(得分:4)
您可以使用reshape
- 函数生成二维数组,然后计算正确维度的平均值。
这可以替代你的循环:
y = mean(reshape(x,[100,10]),1);
注意:x
是列向量还是行向量无关紧要。