Efficiently calculate exponentially weighted moving averages of matrix?

12 ビュー (過去 30 日間)
yari lazzaro
yari lazzaro 2018 年 12 月 4 日
編集済み: Bill Tubbs 2021 年 7 月 22 日
Hi, I've seen movmean function to calculate the moving average, but is there any function to compute the exponentially weighted moving average of a matrix of values? I would like to compute it considering a window moving over rows.
Thank you for your help.

回答 (1 件)

Bill Tubbs
Bill Tubbs 2021 年 7 月 22 日
編集済み: Bill Tubbs 2021 年 7 月 22 日
I find the easiest way is to use a discrete filter. But the input data is in columns here not rows:
x = [0 1 1 1 1; 0 0 1 1 1]'; % input signals in columns
a = 0.4; % smoothing factor (0 to 1);
% y(k) = a / (1 - (1-a)*q^-1) * x(k)
y = filter(a,[1 a-1], x)
y =
0 0
0.4000 0
0.6400 0.4000
0.7840 0.6400
0.8704 0.7840

製品


リリース

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by