diff sequences/@data/buffer.m @ 0:672052bd81f8

Initial partial import.
author samer
date Wed, 19 Dec 2012 22:38:28 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sequences/@data/buffer.m	Wed Dec 19 22:38:28 2012 +0000
@@ -0,0 +1,15 @@
+function o=buffer(source,n,m,varargin)
+% BUFFER - Buffer abstract data object
+%
+% buffer :: (source:data, frame:natural, overlap:natural)->data
+% Works exactly like the usual buffer function but when applied
+% to a data object, returns a fndata object.
+
+args=[{n,m} varargin];
+o=fndata(@(z)buf(args,z),source,'charfn',@(o)charfn(n,n-m,o));
+
+function x=buf(args,y)
+	x=buffer(y,args{:});
+
+function s=charfn(n,m,o)
+	s=sprintf('%s >> buffer(%d/%d)',tostring(source(o)),n,m);