Help with simple probability calculation (loop?)
1 次查看(过去 30 天)
显示 更早的评论
I have a 2-column matrix that looks like this:
30 1
30 1
30 1
30 1
30 1
29 0
29 1
29 1
28 1
28 1
28 0
28 0
"1" indicates an occurrence and "0" does not. I need to compute a probability for each unique number in column 1. So the answers should be:
30 = 1
29 = .6667
28 = .50
Now, I have the "count_unique" function from the file exchange that counts the unique numbers and identifies how many occurrences there are for each number. Using this, I have tried to write a for loop that computes this problem, but I am stuck in the mud. I'm grateful for any assistance. Happy Thanksgiving.
0 个评论
采纳的回答
Star Strider
2015-11-25
I don’t know how robust this is, but it works here:
M = [30 1
30 1
30 1
30 1
30 1
29 0
29 1
29 1
28 1
28 1
28 0
28 0];
raw_freq = accumarray(M(:,1), 1);
adj_freq = accumarray(M(M(:,2)>0), 1);
Prob = adj_freq./raw_freq;
Mu = unique(M(:,1));
Result = flipud([Mu Prob(~isnan(Prob))])
Result =
30 1
29 0.66667
28 0.5
更多回答(0 个)
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!