How can I make randi() in a loop not choose the same number
    2 views (last 30 days)
  
       Show older comments
    
    Tariq Hammoudeh
 on 8 Jan 2022
  
    
    
    
    
    Answered: Walter Roberson
      
      
 on 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 Comments
Accepted Answer
  Walter Roberson
      
      
 on 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 Comments
More Answers (0)
See Also
Categories
				Find more on Loops and Conditional Statements in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
