Borrar filtros
Borrar filtros

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

8 visualizaciones (últimos 30 días)
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

Respuesta aceptada

Walter Roberson
Walter Roberson el 8 de En. de 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

Más respuestas (0)

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by