Mercurial > hg > camir-aes2014
annotate toolboxes/FullBNT-1.0.7/KPMstats/multinomial_sample.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
rev | line source |
---|---|
wolffd@0 | 1 function Y = sample_cond_multinomial(X, M) |
wolffd@0 | 2 % SAMPLE_MULTINOMIAL Sample Y(i) ~ M(X(i), :) |
wolffd@0 | 3 % function Y = sample_multinomial(X, M) |
wolffd@0 | 4 % |
wolffd@0 | 5 % X(i) = i'th sample |
wolffd@0 | 6 % M(i,j) = P(Y=j | X=i) = noisy channel model |
wolffd@0 | 7 % |
wolffd@0 | 8 % e.g., if X is a binary image, |
wolffd@0 | 9 % Y = sample_multinomial(softeye(2, 0.9), X) |
wolffd@0 | 10 % will create a noisy version of X, where bits are flipped with probability 0.1 |
wolffd@0 | 11 |
wolffd@0 | 12 if any(X(:)==0) |
wolffd@0 | 13 error('data must only contain positive integers') |
wolffd@0 | 14 end |
wolffd@0 | 15 |
wolffd@0 | 16 Y = zeros(size(X)); |
wolffd@0 | 17 for i=min(X(:)):max(X(:)) |
wolffd@0 | 18 ndx = find(X==i); |
wolffd@0 | 19 Y(ndx) = sample_discrete(M(i,:), length(ndx), 1); |
wolffd@0 | 20 end |
wolffd@0 | 21 |
wolffd@0 | 22 |