view general/funutils/foldcols.m @ 4:e44f49929e56

Adding reorganised general toolbox, now in several subdirectories.
author samer
date Sat, 12 Jan 2013 19:21:22 +0000
parents
children
line wrap: on
line source
% foldcols - fold from left combinator for columns of an array
%
% foldcols :; 
%    (A,[[N]]->A) ~'folding function',
%    A            ~'initial value',
%    [[N,L]]      ~'data to scan, sequence of length L'
% -> A.

function y=foldcols(f,y,X,varargin)
	if nargin>3
		opts=prefs('draw',0,varargin{:});
		for i=1:size(X,2)
			y1=f(y,X(:,i));
			if opts.draw
				opts.plotfn(i,y,X(:,i),y1); 
			end
			optpause(opts);
			y=y1;
		end
	else % streamlined version
		for i=1:size(X,2), y=f(y,X(:,i)); end
	end