samer@4: % scanl - scanl for cell arrays samer@4: % samer@4: % scanl :: samer@4: % (S,X->S) ~'scannning function', samer@4: % S ~'initial value', samer@4: % {[N]->X} ~'data to scan, sequence of length L' samer@4: % -> {[N]->S}. samer@4: samer@4: function Y=scanl(f,y,X,varargin) samer@4: Y=cell(size(X)); samer@4: if nargin>3 samer@4: opts=prefs('draw',0,varargin{:}); samer@4: for i=1:size(X,2) samer@4: y1=f(y,X{i}); samer@4: Y{i}=y1; samer@4: if opts.draw, opts.plotfn(i,y,X{i},y1); end samer@4: optpause(opts); samer@4: y=y1; samer@4: end samer@4: else samer@4: for i=1:size(X,2), y=f(y,X{i}); Y{i}=y; end samer@4: end samer@4: samer@4: