使用 MATLAB 进行随机排列

Ammar Ali 2022年5月11日 MATLAB MATLAB Random
使用 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 都包含相同的元素。

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

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: 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