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

1 次查看(过去 30 天)
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

采纳的回答

Azzi Abdelmalek
Azzi Abdelmalek 2013-4-27
[idx,idx]=sort(rand(1,n));
out=idx(1:k)
  1 个评论
Jan
Jan 2013-4-27
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.

请先登录,再进行评论。

更多回答(2 个)

Zhang lu
Zhang lu 2013-4-27
a=randperm(n); b=a(1:k)

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

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by