使用 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 都包含相同的元素。
如果我們重新執行程式碼,輸出將改變,但兩個向量的元素將保持不變。如果我們不使用先前儲存的狀態,向量將具有不同的元素。
作者: Ammar Ali