使用 MATLAB 进行随机排列

Ammar Ali 2022年5月11日
使用 MATLAB 进行随机排列

本教程将讨论使用 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 都包含相同的元素。

如果我们重新运行代码,输出将改变,但两个向量的元素将保持不变。如果我们不使用先前存储的状态,向量将具有不同的元素。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - MATLAB Random