annotate sequences/rndzip.m @ 61:eff6bddf82e3
tip
Finally implemented perceptual brightness thing.
author |
samer |
date |
Sun, 11 Oct 2015 10:20:42 +0100 |
parents |
79038cbcce00 |
children |
|
rev |
line source |
samer@0
|
1 function X=rndzip(gen,varargin)
|
samer@0
|
2 % rndzip - Random sequence by zipping argument sequences
|
samer@0
|
3 %
|
samer@0
|
4 % rndzip ::
|
samer@0
|
5 % (A1, ..., An -> rndgen B) ~'sampling function',
|
samer@0
|
6 % seq A1, ..., seq An ~'argument sequences',
|
samer@0
|
7 % rndstate ~'initial random state'
|
samer@0
|
8 % -> seq B.
|
samer@0
|
9
|
samer@0
|
10 n=length(varargin)-1;
|
samer@0
|
11 if n>0
|
samer@25
|
12 X=zipaccum(@zipfn,varargin{n+1},varargin{1:n});
|
samer@0
|
13 else
|
samer@23
|
14 X=unfold(@ufn,varargin{1});
|
samer@0
|
15 end
|
samer@0
|
16
|
samer@0
|
17 function [x,s]=ufn(s0)
|
samer@0
|
18 setrndstate(s0);
|
samer@0
|
19 x=gen();
|
samer@0
|
20 s=getrndstate;
|
samer@0
|
21 end
|
samer@0
|
22
|
samer@0
|
23 function [x,s]=zipfn(varargin)
|
samer@0
|
24 setrndstate(varargin{n+1});
|
samer@0
|
25 x=gen(varargin{1:n});
|
samer@0
|
26 s=getrndstate;
|
samer@0
|
27 end
|
samer@0
|
28 end
|
samer@0
|
29
|
samer@0
|
30
|
samer@0
|
31
|