How can I make randi() in a loop not choose the same number
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Tariq Hammoudeh
am 8 Jan. 2022
Beantwortet: Walter Roberson
am 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
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 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
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!