Prob Matrix for binary sequence
Show older comments
for some integer 'n', I have a matrix M of size (2^n) x n containing all possible binary sequences. Another vector N of length 'n' that contains the probabilities of bit being zero. I want to compute the prob of each sequence without using for loops.
Example
n=2;
M = [0 0;0 1;1 0;1 1];
N = [Prob(N1=0)=0.3 Prob(N2=0)=0.2]
Prob(M1M2=00) = (0.3)*(0.2)
Prob(M1M2=01) = (0.3)*(1-0.2)
Prob(M1M2=10) = (1-0.3)*(0.2)
Prob(M1M2=11) = (1-0.3)*(1-0.2)
Answers (1)
Matt J
on 15 Mar 2013
Probabilities = prod(bsxfun(@times,M,1-N) +bsxfun(@times,~M,N),2);
3 Comments
xplore29
on 15 Mar 2013
Not for me. I get the correct values.
>> M = [0 0;0 1;1 0;1 1];N=[0.3,0.2]; Probabilities = prod(bsxfun(@times,M,1-N) +bsxfun(@times,~M,N),2)
Probabilities =
0.0600
0.2400
0.1400
0.5600
Walter Roberson
on 15 Mar 2013
Note that the character before the M is the tilde, not subtraction.
Categories
Find more on Operating on Diagonal Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!