How can I make randi() in a loop not choose the same number
    2 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Tariq Hammoudeh
 el 8 de En. de 2022
  
    
    
    
    
    Respondida: Walter Roberson
      
      
 el 8 de En. de 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 comentarios
Respuesta aceptada
  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
0 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

