Mercurial > hg > ishara
view sequences/rndzip.m @ 13:03694e5c8365
Reorganised some high order list functions to correct class-based method dispatch; fixed some docs.
author | samer |
---|---|
date | Wed, 16 Jan 2013 12:12:34 +0000 |
parents | 3f77126f7b5f |
children | b1280319413e |
line wrap: on
line source
function X=rndzip(gen,varargin) % rndzip - Random sequence by zipping argument sequences % % rndzip :: % (A1, ..., An -> rndgen B) ~'sampling function', % seq A1, ..., seq An ~'argument sequences', % rndstate ~'initial random state' % -> seq B. n=length(varargin)-1; if n>0 X=zipaccum(@zipfn,varargin(1:n),varargin{n+1}); else X=unfoldseq(@ufn,varargin{1}); end function [x,s]=ufn(s0) setrndstate(s0); x=gen(); s=getrndstate; end function [x,s]=zipfn(varargin) setrndstate(varargin{n+1}); x=gen(varargin{1:n}); s=getrndstate; end end