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)))