Mercurial > hg > ishara
diff signals/@sigmap/sigmap.m @ 1:289445d368a7
import.
author | samer |
---|---|
date | Wed, 19 Dec 2012 22:46:05 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/signals/@sigmap/sigmap.m Wed Dec 19 22:46:05 2012 +0000 @@ -0,0 +1,40 @@ +classdef sigmap < signal + properties (GetAccess=private, SetAccess=immutable) + fun + sig + chans + end + methods + function s=sigmap(f,sig,chf) + if nargin<3, chf=@(c1)size(f(zeros(c1,1)),1); end + s.fun=f; + s.sig=sig; + s.chans=chf(channels(sig)); + end + + function s=tostring(sig) + s=sprintf('map(%s,%s)',tostring(sig.fun),tostring(sig.sig)); + end + + function c=rate(s), c=rate(s.sig); end + function c=channels(s), c=s.chans; end + + function s=construct(sig) + f=sig.fun; + s1=construct(sig.sig); + s.start = s1.start; + s.stop = s1.stop; + s.dispose = s1.dispose; + s.reader = @reader; + + function r=reader(n) + r1=s1.reader(n); + r =@next; + function [x,rem]=next + [x1,rem]=r1(); + x=f(x1); + end + end + end + end +end