rand(matlab中函式)

rand(matlab中函式)

本詞條是多義詞,共5個義項
更多義項 ▼ 收起列表 ▲

rand 是 MATLAB 中生成均勻分布偽隨機數的內置函式,其生成的數值服從區間 [0,1) 內的均勻分布。該函式支持多維度數組生成,可通過 rand(n) 生成 n×n 矩陣,rand(m,n) 生成 m×n 矩陣,或基於現有數組維度生成相同結構的隨機數陣列(如 rand(size(A)))。通過調整縮放因子(如 a + (b-a)*rand())可將數值映射至指定區間。為確保隨機序列可復現,可通過設定隨機種子(如 rand('state',0))重置生成器狀態。

MATLAB 在版本疊代中逐步擴展了 rand 的功能特性:R2014a 引入數據類型控制參數('single'/'double'),R2022a 新增 'like' 參數實現類型匹配,R2008b 棄用舊版參數(如 'seed'/'state'),推薦使用 rng 函式管理生成器狀態。該函式與 randn(常態分配生成器)、randi(整數生成器)共同構成 MATLAB 隨機數生成的核心工具集。

功能:matlab中通過rand函式產生的是介於0到1(不包括1)之間的偽隨機數。更多信息請見本詞條參考資料或者在matlab命令視窗輸入help rand獲得幫助信息。
用法:
1.rand(n)表示產生一個n×n的隨機矩陣,n必須是整數,否則會報錯。
2.rand(m,n)或rand([m n])產生m×n均勻分布的隨機矩陣,元素取值在0.0~1.0。
3.X=rand(1,10);產生10個0~1的隨機數。
4.Y = rand(size(A))產生一個與A同樣大小的數組。
5.產生介於a到b之間的偽隨機數。
6.rand('state',0)表示恢復到最初產生隨機數的狀態。
7.rand('state',sum(100*clock))定義隨時間變化的初值。
示例:
1. N=rand(3)產生一個三行三列的隨機矩陣:
N =
0.4103 0.3529 0.1389
0.8936 0.8132 0.2028
0.0579 0.0099 0.1987
2.A=rand(2,3)產生一個二行三列的隨機矩陣:
A =
rand
rand
0.9218 0.1763 0.9355
0.7382 0.4057 0.9169
3.與選項2相同。
4. A=[1,2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
rand(size(A))
ans =
0.1389 0.6038 0.0153
0.2028 0.2722 0.7468
0.1987 0.1988 0.4451
5.a = 10; b = 50;
x = a + (b-a) * rand(5)
x =
18.1106 10.6110 26.7460 43.5247 30.1125
17.9489 39.8714 43.8489 10.7856 38.3789
34.1517 27.8039 31.0061 37.2511 27.1557
20.8875 47.2726 18.1059 25.1792 22.1847
17.9526 28.6398 36.8855 43.2718 17.5861
6.首先輸入rand('state',0)。再利用n次rand隨機產生n個數組,再重新輸入rand('state',0)。再次產生n個數 組,與之前的n個數組相同,順序也相同。
7.為了使每次執行rand函式時產生和之前不相同的一組偽隨機數,通常需要初始化隨機數種子。方法很多, 常見的一種是在寫m檔案時,在程式的開頭寫:
rand('state',sum(100*clock)) %定義一個隨時間變化的初值。
示例:
function rand_sample()
rand('state',sum(100*clock));
X=rand(2,5);
Y=rand(2,5);
相關函式:randn

相關詞條

熱門詞條

聯絡我們