使用 MATLAB 进行随机排列
Ammar Ali
2022年5月11日
本教程将讨论使用 MATLAB 中的 randperm()
函数生成包含整数随机排列的向量。
使用 MATLAB 中的 randperm()
函数生成包含整数随机排列的向量
我们可以使用 MATLAB 的内置函数 randperm()
来生成包含整数随机排列的向量。我们可以在 randperm()
函数中定义采样区间的最大整数,采样区间的最小整数默认为 1。
例如,让我们使用 randperm()
函数生成 1 到 6 之间的六个整数。请参阅下面的代码。
clc
v = randperm(6)
输出:
v =
3 5 6 1 4 2
如果我们重新运行此代码,输出将会改变,因为这些值是随机的。我们可以使用 randperm()
函数的第二个参数来定义随机排列整数的数量。
我们只能定义一个小于或等于第一个参数的数字,因为生成的数字是唯一的,不能重复。如果我们定义的数字大于第一个参数,MATLAB 将显示错误。
例如,让我们使用 randperm()
函数生成 1 到 6 之间的两个随机排列数。请参阅下面的代码。
clc
v = randperm(6,2)
输出:
v =
1 3
如果我们重新运行代码,输出中只有两个数字会改变,因为生成的数字是随机的。我们还可以使用 rng
函数保存随机数生成器的状态。
先前保存的状态可用于生成相同的整数序列。例如,让我们使用 randperm()
和 rng
函数生成两个具有相同序列的向量。
请参阅下面的代码。
clc
s = rng;
v1 = randperm(6,2)
rng(s)
v2 = randperm(6,2)
输出:
v1 =
1 2
v2 =
1 2
在输出中,向量 v1 和 v2 都包含相同的元素。
如果我们重新运行代码,输出将改变,但两个向量的元素将保持不变。如果我们不使用先前存储的状态,向量将具有不同的元素。
Author: Ammar Ali