** matble中help rand
其實都知道rand('twister',5489),就是重置matble隨機生成數編譯器,使在不同方法(演算法)下有相同的初始化,同時又可以保證實驗結果可以復現。
下面結合matble中的help rand來具體,rand函式 預設是生成(0,1)之間隨機數的函式
rand()函式的具體形式有如下幾種:
>> rand(3)
ans =
0.2769 0.8235 0.9502
0.0462 0.6948 0.0344
0.0971 0.3171 0.4387
>> rand(2,3)
ans =
0.3816 0.7952 0.4898
0.7655 0.1869 0.4456
randi()可以設定產生隨機數的區間
>> r = randi([10 50],1,5)
r = 43 47 15 47 35
產生隨機複數
>> a = rand + 1i*rand
a = 0.6551 + 0.1626i
重置隨機數生成器,
儲存隨機數生成器的當前狀態,並建立1乘5的隨機數向量。 (始終使用rng函式(而不是rand或randn函式)來指定隨機數產生器的設定)
>> s = rng;
r = rand(1,5)
r = 0.1190 0.4984 0.9597 0.3404 0.5853
>> rng(s);
r1 = rand(1,5)
r1 =
0.1190 0.4984 0.9597 0.3404 0.5853
三維隨機數組create a 3-by-2-by-3 array of random numbers.
>> x = rand([3,2,3])
x(:,:,1) =
0.2238 0.5060
0.7513 0.6991
0.2551 0.8909
x(:,:,2) =
0.9593 0.1493
0.5472 0.2575
0.1386 0.8407
x(:,:,3) =
0.2543 0.9293
0.8143 0.3500
0.2435 0.1966
x = rand(
___,typename) 的使用
>> r = rand(1,4,'single')
r = 0.2511 0.6160 0.4733 0.3517
檢視上面r矩陣的資料型別使用class()函式 ///其實也可以用whos語句查詢,不過whos查的是當前所有包含資料的型別,包含r
>> class(r)
ans =
single
x = rand(
___,'like',p)
>> p = single([3 2; -2 1])
p = 3 2
-2 1
矩陣p為single型別
>> x = rand(2,3,'like',p)
x = 0.4505 0.2290 0.1524
0.0838 0.9133 0.8258
>> y = rand(3,'like',p)
y = 0.5383 0.4427 0.0046
0.9961 0.1067 0.7749
0.0782 0.9619 0.8173
>> z=randi([1,10],2,3,'like',p)
z = 9 4 9
1 3 5
>> class(x)
ans =
single
>> class(y)
ans =
single
>> class(z)
ans =
single
c 中的隨機函式rand()
一 c 中不能使用random 函式 random 函式不是ansi c標準,不能在gcc,vc等編譯器下編譯通過。但在c語言中int random num 可以這樣使用,它返回的是0至num 1的乙個隨機數。可改用c 下的rand函式來實現。1 c 標準函式庫提供一隨機數生成器rand,返回0 r...
C 中rand()函式的用法
c 標準函式庫提供一隨機數生成器rand,返回0 rand max之間均勻分布的偽隨機整數。rand max必須至少為32767。rand 函式不接受引數,預設以1為種子 即起始值 隨機數生成器總是以相同的種子開始,所以形成的偽隨機數列也相同,失去了隨機意義。但這樣便於程式除錯 如果你要產生0 10...
C C 中rand()函式的用法
一 c 中不能使用random 函式 random函式不是ansi c標準,不能在gcc,vc等編譯器下編譯通過。但在c語言中int random num 可以這樣使用,它返回的是0至num 1的乙個隨機數。可改用c 下的rand函式來實現。1 c 標準函式庫提供一隨機數生成器rand,返回0 ra...