使用矢量化来计算Matlab中的移动平均值

时间:2016-05-25 03:21:38

标签: matlab vectorization moving-average

我编写了一个脚本来使用for-loop计算向量的简单移动平均值:

X=rand(1000,1); 
Y=nan(size(A));
for i=100:length(A);
    Y(i)=mean(X(i-99:i));
end

我可以使用任何矢量化方法来避免循环吗?感谢。

1 个答案:

答案 0 :(得分:0)

如果您有曲线拟合工具箱,则可以使用卷积(conv)或smooth轻松避免循环。

filterSize = 5;
Y = conv(X, ones(1, filterSize) / filterSize, 'same');

% Or with the curve-fitting toolbox
Y = smooth(X, filterSize);