samer@4: % foldcols - fold from left combinator for columns of an array samer@4: % samer@4: % foldcols :; samer@4: % (A,[[N]]->A) ~'folding function', samer@4: % A ~'initial value', samer@4: % [[N,L]] ~'data to scan, sequence of length L' samer@4: % -> A. samer@4: samer@4: function y=foldcols(f,y,X,varargin) 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: if opts.draw samer@4: opts.plotfn(i,y,X(:,i),y1); samer@4: end samer@4: optpause(opts); samer@4: y=y1; samer@4: end samer@4: else % streamlined version samer@4: for i=1:size(X,2), y=f(y,X(:,i)); end samer@4: end samer@4: samer@4: