MATLAB 随机数函数参考

MATLAB randperm 生成 1 到 n 的随机排列,或从中抽出 k 个不重复的整数。抽签、洗牌时用它,而不要用多次 randi。

语法

p = randperm(n)
p = randperm(n, k)

输入参数

参数说明
n上限,排列覆盖 1 到 n
k抽出的个数,1 ≤ k ≤ n

输出

行向量,元素为 1 到 n 中的互异整数。

示例

rng(1)
randperm(5)
ans =
     2     5     1     4     3

从 1 到 10 抽 3 个不重复的数:

rng(1)
randperm(10, 3)

打乱已有向量的顺序:

v = [10 20 30 40];
v(randperm(length(v)))

注意事项

  • 结果中不会出现重复值。允许重复时用 randi。
  • 需要可复现时先调用 rng。