使用 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