matble中函式rand (一)

2021-08-18 10:05:11 字數 2402 閱讀 6313

** 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...