annotate sequences/@subsampdata/subsampdata.m @ 2:7357e1dc2ad6
Simplified scheduler library with new schedule representation.
author |
samer |
date |
Sat, 22 Dec 2012 16:17:51 +0000 |
parents |
672052bd81f8 |
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
|