Effacer les filtres
Effacer les filtres

How can I make randi() in a loop not choose the same number

8 vues (au cours des 30 derniers jours)
Tariq Hammoudeh
Tariq Hammoudeh le 8 Jan 2022
I have an array
x=zeros(1,36)
then i have inside a while loop:
while ....
y=randi(length(x));
z=randi(length(x));
How can i make it so that this doesnt choose the same number at all,
Note: the loop will end before it gets to 36 choices, so its not that it doesnt have a choice but to go over the same numbers again

Réponse acceptée

Walter Roberson
Walter Roberson le 8 Jan 2022
That would be a bit difficult. You would have to find a random number seed that you could set such that randi(36) happens to produce a permutation of the numbers 1 : 36. It could take a fair bit of work to find such a seed.
I would suggest that you take a completely different approach:
rand_y = randperm(length(x));
rand_z = randperm(length(x));
for K = 1 : length(x)
y = rand_y(K);
z = rand_z(K);
stuff
if some conditon;
break;
end
end

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by