I need help with Probability function.

5 visualizzazioni (ultimi 30 giorni)
Nadia
Nadia il 24 Apr 2013
Hey guys, I need to generate a function called "produce" that will return either "peach", "panana", or "papaya" based on their probabilities of 0.20, 0.35, and 0.45 respectively. This is what I have:
function x = produce
A = 1e5;
B = rand;
C = ceil(A*B)
if (1 <= C <= 20000)
C = 'peach';
elseif ( 20001 <= C <= 55000)
C = 'panana';
elseif (55001 <= C <= 100000)
C = 'papaya';
end
x = C
For some reason, it only generates a return of "peach" no matter what the number is. It won't return panana or papaya when it's in their number range. Please help if you can. Thanks!

Risposta accettata

Wayne King
Wayne King il 24 Apr 2013
Modificato: Wayne King il 24 Apr 2013
You can't specify inequalities in a computer language like you write them down on a piece on a paper.
if (C >=1 && C <= 20000)
function x = produce
A = 1e5;
B = rand;
C = ceil(A*B)
if (C>=1 && C<= 20000)
C = 'peach';
elseif (C>= 20001 && C<= 55000)
C = 'panana';
elseif (C >= 55001)
C = 'papaya';
end
x = C
I would also suggest that you don't assign C which is originally a number a string, why not just assign x directly?
if (C>=1 && C<= 20000)
x = 'peach';
and so on?

Più risposte (0)

Categorie

Scopri di più su Descriptive Statistics and Visualization in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by