How to generate k unique random numbers from 1 to n in matlab 2009

1 Ansicht (letzte 30 Tage)
Hi, I knew randperm(n,k) works but this is after 2011. Can some one tell me if there is any efficient way to do it in matlab 2009.
Thanks

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 27 Apr. 2013
[idx,idx]=sort(rand(1,n));
out=idx(1:k)
  1 Kommentar
Jan
Jan am 27 Apr. 2013
The result is biased, because Matlab's sort is stable. The effects are very tiny and they appear in Matlab's randperm function with 1 input argument also.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Zhang lu
Zhang lu am 27 Apr. 2013
a=randperm(n); b=a(1:k)

Jan
Jan am 27 Apr. 2013
Not biased and faster than sorting a RAND vector: http://www.mathworks.com/matlabcentral/fileexchange/27076-shuffle

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by