samer@4: % scanrcols - scan array columns from the right samer@4: % samer@4: % scanrcols :; samer@4: % ([[M]], [[N]] -> [[M]]) ~'scannning function', samer@4: % [[M]] ~'initial value', samer@4: % [[N,L]] ~'data to scan, sequence of length L' samer@4: % -> [[M,L]]. samer@4: samer@4: function Y=scanrcols(f,y,X,varargin) samer@4: Y=zeros(size(y,1),size(X,2)); samer@4: samer@4: if nargin>3 samer@4: opts=prefs('draw',0,varargin{:}); samer@4: for i=size(X,2):-1:1 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=size(X,2):-1:1, y=f(y,X(:,i)); Y(:,i)=y; end samer@4: end samer@4: samer@4: