从Matlab中的向量到较短的平均向量

时间:2015-06-26 10:38:56

标签: matlab vector

让我在Matlab中有一个大小为1000的向量x。我想生成一个长度为10的向量y,其中每个组件包含来自向量x的100条记录的平均值。

我的尝试非常简单

for i=1:10
 y(i) = mean(x((1:100)+(i-1)*100));
end

我想知道是否有内置命令或更优雅的解决方案。

1 个答案:

答案 0 :(得分:4)

您可以使用reshape - 函数生成二维数组,然后计算正确维度的平均值。

这可以替代你的循环:

y = mean(reshape(x,[100,10]),1);

注意:x是列向量还是行向量无关紧要。