how to check if random number is equal to 1

3 visualizzazioni (ultimi 30 giorni)
Steven Strange
Steven Strange il 4 Mar 2020
Hello World,
I wanted my code to work if a random drawn number is equal to 1 then another variable 'r' = 1
code is below, but doesnt seem to work
Please can somebody help me,
thanks Steven
x = [1,3,3]
total = total + x(randi(length(x)))
if x(randi(length(x))) == 1
r = 1;
end
  6 Commenti
Stephen23
Stephen23 il 4 Mar 2020
"hi i assumed the randon number called in 'total' and the random number called in the if statement are the same?"
That is a highly unusual expectation from a random number generator, that it should repeatedly return the same value.
Steven Strange
Steven Strange il 4 Mar 2020
i am quite new to matlab, is thete any way to check that if the random number in the total is a 1, then r should = 1, please, thanks.

Accedi per commentare.

Risposte (1)

Stephen23
Stephen23 il 4 Mar 2020
x = [1,3,3];
v = randi(numel(x));
total = total + x(v);
if x(v) == 1
r = 1;
end
  3 Commenti
Walter Roberson
Walter Roberson il 4 Mar 2020
Reminder: your v is going to have as many elements as x does, so your v is a vector. x(v) is going to be a vector. x(v) == 1 is going to be a vector. if applied to a vector is only true if all of the values in the vector are non-zero (true). Therefore the current code if x(v) == 1 is testing whether all of the x(v) entries happen to be 1 (which in this particular case would only happen if v is [1 1 1], which would happen roughly one time in 27). If that is your intention then it is recommended that you code if all(x(v) == 1) to emphasize to the reader that you really do want that particular test.

Accedi per commentare.

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by