diff options
Diffstat (limited to 'sourcecodes/bnt-master/KPMstats/sample.m')
| -rw-r--r-- | sourcecodes/bnt-master/KPMstats/sample.m | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sourcecodes/bnt-master/KPMstats/sample.m b/sourcecodes/bnt-master/KPMstats/sample.m new file mode 100644 index 00000000..fc252da2 --- /dev/null +++ b/sourcecodes/bnt-master/KPMstats/sample.m @@ -0,0 +1,15 @@ +function x = sample(p, n) +% SAMPLE Sample from categorical distribution. +% Returns a row vector of integers, sampled according to the probability +% distribution p. +% Uses the stick-breaking algorithm. +% Much faster algorithms are also possible. + +if nargin < 2 + n = 1; +end + +cdf = cumsum(p(:)); +for i = 1:n + x(i) = sum(cdf < rand) + 1; +end |
