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