I need help with Probability function.

1 view (last 30 days)
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!

Accepted Answer

Wayne King
Wayne King on 24 Apr 2013
Edited: Wayne King on 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?

More Answers (0)

Community Treasure Hunt

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

Start Hunting!