Random numbers without repetition

X=1 2 3 4 5 6 7 8 9 10
Y=[1 3 4;1 6 9;6 7 8] o Y=[1 3 5;6 8 6;1 5 3] x Like this numbers of each row should be generated randomly with no repetition And no rows should have numbers
Help!

2 comentarios

Jan
Jan el 31 de Mzo. de 2011
No rows should have numbers???
joey
joey el 31 de Mzo. de 2011
no row shoul not have identical combination of numbers

Iniciar sesión para comentar.

 Respuesta aceptada

Teja Muppirala
Teja Muppirala el 31 de Mzo. de 2011

0 votos

This is a simple (but inefficent) way to do it using UNIQUE:
Y = [];
while size(Y,1) ~= 3
Y = unique([Y ; randsample(10,3)'],'rows');
end;
Y = Y(randperm(size(Y,1)),:) %<-- To remove the sorting done by UNIQUE

Más respuestas (1)

Titus Edelhofer
Titus Edelhofer el 31 de Mzo. de 2011

0 votos

Hi Joey, not really elegant, but could work (as long as your "real" need is not much larger):
Y = zeros(3, 10);
for i=1:3
Y(i,:) = randperm(10);
end
Y = Y(:, 1:3);
Titus

3 comentarios

joey
joey el 31 de Mzo. de 2011
Thanks for your help but yours does make rows that have same combination of numbers
Jan
Jan el 31 de Mzo. de 2011
Does your example "Y=[1 3 5;6 8 6;1 5 3]" have "the same combination of numbers" also? Please explain all of the wanted constraints exactly - it is impossible to guess, what you need.
joey
joey el 31 de Mzo. de 2011
Y=[1 3 4;1 6 9;6 7 8] ok
Y=[1 3 5;6 8 6;1 5 3] not okay
These are examples of 'ok' and 'not okay'
Each row should have number without repetition (I can do it with randsample(10,3))
Also Each row shoul not have identical combination of numbers

Iniciar sesión para comentar.

Categorías

Más información sobre Random Number Generation en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 31 de Mzo. de 2011

Community Treasure Hunt

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

Start Hunting!

Translated by