How can i create an if-function with probability p ?

Hi, im quite new in all this, i hope someone can help me.
I should generate a function that with probability p calculates for example y=2x and with probability 1-p y = 5x. I don't know how to do it but i thought of creating a variable, lets call it C, that equals 1 with probability p and something else with p-1 or something similar and then create an if function with
if C=1
y=2x
else
y=5x
But is there the possibility to create something like C and how? Or is there an easier way to do this?
Sorry, i hope this was clear and thanks in advance!
Best, Nina

3 comentarios

James Tursa
James Tursa el 17 de Abr. de 2015
Did you bother reading the answer that was already posted on the Newsgroup?
Nina Gerber
Nina Gerber el 3 de Feb. de 2016
thanks & sorry for bothering i haven't found the answer!
I confirm that Roger's solution works.
For example,
x = 1 : 10;
p = 0.2;
for tryno = 1 : 8
if rand <= p
y = 2 * x
else
y = 5 * x
end
end
You can see that the answer is not always the same

Iniciar sesión para comentar.

Respuestas (1)

if rand<=p
y = 2*x;
else
y = 5*x;
end

2 comentarios

Nina Gerber
Nina Gerber el 17 de Abr. de 2015
Thanks, but If i run the function like this it always returns the else command, so y=5*x what im i doing wrong?
Roger Stafford
Roger Stafford el 17 de Abr. de 2015
Editada: Roger Stafford el 18 de Abr. de 2015
That would only be true if you reset the "seed" for 'rand' processing using 'rng' each time you called 'rand', or if you shut off the computer each time.

Iniciar sesión para comentar.

Etiquetas

Preguntada:

el 17 de Abr. de 2015

Comentada:

el 3 de Feb. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by