MATLAB: How to generate `n’ different sets of `f’ unique random numbers between 1 and 120

random number generator

How can I generate `n' different sets of `f' unique random numbers between 1 and 120?
For example, for n = 4 and f = 5, such 4 different possible sets would be:
– {1, 13, 71, 88, 118} – {5, 19, 73, 92, 103} – {13, 49, 52, 55, 93} – {22, 34, 55, 67, 88}
Thank you very much for your assistance.

Best Answer

m = 120; % Choose m
n = 4; % Choose n
f = 5; % Choose f
A = zeros(n,f);
k = 0;
while k<n
for ix = k+1:n
A(ix,:) = sort(randperm(m,f));
end
U = unique(A,'rows');
k = size(U,1);
A(1:k,:) = U;
end
A = A(randperm(n),:); % <-- Result
Unless n is very large, the while-loop should normally require only one or two passes.