Files
matlab/common/movingavg.m
T
jens 1ab94a4bea added
git-svn-id: http://moon:8086/svn/matlab/trunk@99 801c6759-fa7c-4059-a304-17956f83a07c
2018-08-30 18:06:49 +00: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