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