functions to exclude repetitions

1 view (last 30 days)
hello everyone, I want to know if there is a function that allows me, through a random variable, to run my code with all the elements of a matrix 1xn without repetition. here's an example of what i want to do:
Caos = [1:10]; %is my matrix
a = min(Caos); %minimum value of "Caos"
b = max(Caos); %maximum value of "Caos"
c = length(Caos);
d = 0; %counter
R = randi([a b],1); %random variable that's I don't want to repeat
while d<c
%execute my code
d=d+1
end

Accepted Answer

per isakson
per isakson on 4 Apr 2013
Guess:
R2 = unique( R, 'stable' );
'stable' to avoid to sort R2
  3 Comments
Matt Kindig
Matt Kindig on 4 Apr 2013
It sounds like randperm() is what you want, then. This will randomly sort all of the integers between 1 and n, where n=10 in your example. You can then iterate through the elements of this vector, which by definition will not contain repeats (simulating your lottery-ball example).
doc randperm
Nicolò
Nicolò on 5 Apr 2013
randperm seems to be a good solution, i'll give it a shot.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!