annotate sequences/@subsampdata/subsampdata.m @ 0:672052bd81f8

Initial partial import.
author samer
date Wed, 19 Dec 2012 22:38:28 +0000
parents
children
rev   line source
samer@0 1 function d=subsampdata(a,b,varargin)
samer@0 2 % subsampdata - Use arbitrary function to test and filter elements of another sequence
samer@0 3 %
samer@0 4 % subsampdata ::
samer@0 5 % natural ~ sample rate,
samer@0 6 % data(A), ~ source data,
samer@0 7 % ... ~ options)
samer@0 8 % -> data(A).
samer@0 9 %
samer@0 10 % Options
samer@0 11 % 'datafn':: Data A->A ~ override function to get data
samer@0 12 % 'stringfn':: Data A->String ~ override conversion to string
samer@0 13 % 'nextfn':: Data A->(Data A | []) ~ override next function
samer@0 14 %
samer@0 15 % Methods
samer@0 16 %
samer@0 17 % source :: filterdata(A) -> data(A).
samer@0 18
samer@0 19 if nargin==0, a=subsampdata(1,singleton(0)); end
samer@0 20 if isa(a,'subsampdata'), d=a;
samer@0 21 else
samer@0 22 d.n=a;
samer@0 23
samer@0 24 opts=prefs('datafn',@datafn,'stringfn',@stringfn,'sizecheck',0,varargin{:});
samer@0 25 opts.nextfn=@nextfn;
samer@0 26 d=class(d,'subsampdata',ddata(b,size(b),opts));
samer@0 27 end
samer@0 28
samer@0 29 function x=datafn(d), x=head(source(d));
samer@0 30 function s=stringfn(d), s=sprintf('subsamp(%d)',tostring(d.n));
samer@0 31 function o=nextfn(o)
samer@0 32 for i=1:o.n
samer@0 33 o=next_c(o);
samer@0 34 if isempty(o), break; end
samer@0 35 end
samer@0 36
samer@0 37
samer@0 38