Random numbers without repetition

10 Ansichten (letzte 30 Tage)
joey
joey am 31 Mär. 2011
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 Kommentare
Jan
Jan am 31 Mär. 2011
No rows should have numbers???
joey
joey am 31 Mär. 2011
no row shoul not have identical combination of numbers

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Teja Muppirala
Teja Muppirala am 31 Mär. 2011
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

Weitere Antworten (1)

Titus Edelhofer
Titus Edelhofer am 31 Mär. 2011
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 Kommentare
Jan
Jan am 31 Mär. 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 am 31 Mär. 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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Random Number Generation finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by