2016-05-25 4 views
0

で移動平均を計算するためにベクトル化を使用して、私はforループ使用して、ベクターの単純移動平均を計算するためのスクリプトを書きました:はMatlabの

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

私はループを避けるために、任意のベクトル化法を使用してもらえますか?ありがとう。

答えて

0

カーブフィッティングツールボックスを使用している場合は、畳み込み(conv)またはsmoothを使用してループを簡単に回避できます。

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

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