Effacer les filtres
Effacer les filtres

Help with simple probability calculation (loop?)

1 vue (au cours des 30 derniers jours)
Cary
Cary le 25 Nov 2015
Commenté : Star Strider le 30 Nov 2015
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.

Réponse acceptée

Star Strider
Star Strider le 25 Nov 2015
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
  2 commentaires
Cary
Cary le 30 Nov 2015
Thanks as always Star! Happy Holidays.
Star Strider
Star Strider le 30 Nov 2015
And as always, my pleasure!
You, too!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by