diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/general/funutils/foldcols.m	Sat Jan 12 19:21:22 2013 +0000
@@ -0,0 +1,24 @@
+% 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
+	
+