我需要生成1到n范围内的m个唯一随机数。目前,我已经实现的是:
round(rand(1,m)*(n-1)+1)
但是,一些数字在数组中重复。我怎样才能只获得唯一的号码?
最佳答案
您可以使用 randperm
。
根据描述:
因此,randperm(6,3)
可能是向量
[4 2 5]
更新
randperm的两个参数版本仅出现在R2011b中,因此,如果您使用的是MATLAB的早期版本,则会看到该错误。在这种情况下,请使用:
A = randperm(n);
A = A(1:m);