matlab怎么生成隨機數rank?
隨機數的生成在算法編程中非常常用,在matlab中rand(random的縮寫)家族經常被使用。小白一枚,敬請大神指教
rand家族成員randMatrix = rand(x, y)
randMatrix = randn(x, y)
randMatrix = randi(x, y)
randMatrix = randperm(x, y)
rng 使用方法
rand
隨機生成一組數,數值范圍在[0, 1]之間,所生成的隨機值服從隨機分布。rand(x) or rand(x, y)
rand(x) :這種形式的寫法默認隨機生成維度為x的方陣。>> randMatrix = rand(3) randMatrix = 0.8147 0.9134 0.2785 0.9058 0.6324 0.5469 0.1270 0.0975 0.9575 12345671234567
rand(x, y):這種形式的寫法隨機生成行數為x,列數為y的矩陣。>> randMatrix = rand(2,3) randMatrix = 0.9649 0.9706 0.4854 0.1576 0.9572 0.8003 123456123456
randn
該函數生成服從標準正態分布的隨機數。randn(x) or randn(x, y)
randn(x): 生成標準正態分布的隨機數方陣,大小為:-x- by -x->> randMatrix = randn(3) randMatrix = -0.2050 1.4090 -1.2075 -0.1241 1.4172 0.7172 1.4897 0.6715 1.6302 12345671234567
randn(x, y) :生成服從標準正態分布的隨機數矩陣。大小為:-x- by -y->> randMatrix = randn(2,3) randMatrix = 0.4889 0.7269 0.2939 1.0347 -0.3034 -0.7873 123456123456
randi
該函數也具有常用的兩種形式:randi(x) or randi(x, y).使用方法和上述的rand和randn一樣。randperm
該函數功能是生成一組整數,并將順序隨機打亂。這種打亂順序,完全隨機,并不服從什么分布。例1:>> randperm(5) ans = 2 4 5 3 1 1234512345
randperm(5), 表示生成從1到5的五個為整數,并隨機打亂順序。例2:>> randperm(10, 3) ans = 4 6 5 1234512345
randperm(10, 3),表示生成從1到10的10整數,將順序隨機打亂,并將前三個整數返回。探索篇——rng 使用方法
在一些隨機生成參數的神經網絡算法中,將某一次預測結果較高的隨機參數在下一次隨機生成中進行使用時,rng函數算是一種方式。它可以將上一次隨機生成的隨機數,進行保存,并在下一次隨機生成時進行調用,使得前后兩次隨機生成的隨機數相同。>> randNum = rng; >> rand_1 = rand(3) rand_1 = 0.2238 0.5060 0.9593 0.7513 0.6991 0.5472 0.2551 0.8909 0.1386 >> rng(randNum); >> rnad_2 = rand(3) rnad_2 = 0.2238 0.5060 0.9593 0.7513 0.6991 0.5472 0.2551 0.8909 0.1386 12345678910111213141516171234567891011121314151617
rng 函數在使用時,還可以指定隨機生成的類型(rand, randi,randn)。