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