Files
matlab/common/statistic/movingavg.m
T
2022-06-30 13:32:40 +02:00

24 lines
365 B
Matlab
Executable File

function [y, zf] = movingavg(x, zi)
if ~isstruct(zi)
N = zi;
zf = struct('N', N, 's', zeros(N+1, 1), 'ri', 2, 'wi', 1, 'y', 0);
else
zf = zi;
end
xn = x/zf.N;
zf.y = zf.y + xn - zf.s(zf.ri);
y = zf.y;
zf.ri = zf.ri + 1;
if zf.ri > length(zf.s)
zf.ri = 1;
end
zf.s(zf.wi) = xn;
zf.wi = zf.wi + 1;
if zf.wi > length(zf.s)
zf.wi = 1;
end