Mercurial > hg > ishara
diff general/cellutils/cscanl.m @ 13:03694e5c8365
Reorganised some high order list functions to correct class-based method dispatch; fixed some docs.
author | samer |
---|---|
date | Wed, 16 Jan 2013 12:12:34 +0000 |
parents | |
children | beb8a3f4a345 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/general/cellutils/cscanl.m Wed Jan 16 12:12:34 2013 +0000 @@ -0,0 +1,24 @@ +% cscanl - scanl for cell arrays +% +% cscanl :: +% (S,X->S) ~'scannning function', +% S ~'initial value', +% {[N]->X} ~'data to scan, sequence of length L' +% -> {[N]->S}. + +function Y=cscanl(f,y,X,varargin) + Y=cell(size(X)); + if nargin>3 + opts=prefs('draw',0,varargin{:}); + for i=1:size(X,2) + y1=f(y,X{i}); + Y{i}=y1; + if opts.draw, opts.plotfn(i,y,X{i},y1); end + optpause(opts); + y=y1; + end + else + for i=1:size(X,2), y=f(y,X{i}); Y{i}=y; end + end + +