Mercurial > hg > ishara
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 |