我需要在MatLab中获得一个随机排列n
个数字的向量。我该怎么办?
如果我使用randi(10,1,10)
,我将获得随机值,但我不保证所有数字都在序列中。
例如:
我需要一个包含所有数字1,2,3,4,5,6,7,8,9,10
的向量,按随机顺序排列,例如2,5,3,6,8,10,4,7,9,1
。
答案 0 :(得分:1)
您正在寻找randperm
功能。来自文档:
p = randperm(n)
返回一个行向量,其中包含从1到n
的整数的随机排列。
您的示例是randperm(10)
。
您可以传入一个可选的第二个参数来确定将选择多少个元素。例如,randperm(10, 5)
会从1到10中选择五个随机数。
您还可以使用randperm
的结果随机播放或从任意向量中进行选择。假设您希望数字101到110是随机顺序而不是1到10:
nums = 101:110;
nums = nums(randperm(numel(nums)));