matlab中 rand和 randn的區別,請分別舉例

時間 2021-07-08 22:05:14

1樓:歷史小店

主要區別

(1)rand 生成均勻分佈的偽隨機數。分佈在(0~1)之間主要語法:rand(m,n)生成m行n列的均勻分佈的偽隨機數,rand(m,n,'double')生成指定精度的均勻分佈的偽隨機數,引數還可以是'single',  rand(randstream,m,n)利用指定的randstream(我理解為隨機種子)生成偽隨機數。

(2)randn 生成標準正態分佈的偽隨機數(均值為0,方差為1)主要語法:和上面一樣

(3)randi 生成均勻分佈的偽隨機整數主要語法:randi(imax)在開區間(0,imax)生成均勻分佈的偽隨機整數,randi(imax,m,n)在開區間(0,imax)生成mxn型隨機矩陣,  r = randi([imin,imax],m,n)在開區間(imin,imax)生成mxn型隨機矩陣

2樓:

關鍵問題不是用法而是意義,rand是0-1的均勻分佈,randn是均值為0方差為1的正態分佈用法自己help rand或者help randn一下就知道了rand(n)或randn(n)生成n*n的隨機數矩陣rand(n,m)或randn(m,n)生成m*n的隨機數矩陣

3樓:匿名使用者

rand是平均分佈,即等概率分佈,等概率產生0-1範圍內的數

randn是標準正態分佈,均值為0,標準差為1

4樓:shine戚七七

1,rand 生成均勻分佈的偽隨機數。分佈在(0~1)之間

主要語法:rand(m,n)生成m行n列的均勻分佈的偽隨機數

rand(m,n,'double')生成指定精度的均勻分佈的偽隨機數,引數還可以

是'single'

rand(randstream,m,n)利用指定的randstream(我理解為隨機種子)生成偽

隨機數2,randn 生成標準正態分佈的偽隨機數(均值為0,方差為1)

主要語法:和上面一樣

3, randi 生成均勻分佈的偽隨機整數

主要語法:randi(imax)在開區間(0,imax)生成均勻分佈的偽隨機整數

randi(imax,m,n)在開區間(0,imax)生成mxn型隨機矩陣

r = randi([imin,imax],m,n)在開區間(imin,imax)生成mxn型隨機矩陣

5樓:匿名使用者

前者是0到1的均勻分佈,後者是標準正態分佈

6樓:百慕大的小魚

randi(imax)在閉區間(0,imax)生成均勻分佈的偽隨機整數

randi(imax,m,n)在閉區間(0,imax)生成mxn型隨機矩陣

r = randi([imin,imax],m,n)在閉區間(imin,imax)生成mxn型隨機矩陣

matlab中rand和randn分別是什麼函式?

7樓:子衿悠你心

在matlab中,rand是0-1的均勻隨機分佈,而randn是均值為0方差為1的正態分佈。

舉個例子:x = rand 產生一個在(0,1)區間內的隨機數。

x = rand(n)或x = randn(n)產生一個n*n的隨機變數矩陣。

x = rand(m,n)或x = randn(m,n)產生一個m*n的隨機變數矩陣。

可以通過查閱matlab中的help來得到rand和randn更詳細的用法。

8樓:文件類共創空間

rand是0-1的均勻分佈,randn是均值為0方差為1的正態分佈;

rand(n)或randn(n)生成n*n的隨機數矩陣。

rand(n,m)或randn(m,n)生成m*n的隨機數矩陣。

9樓:橙子小可樂樂

1,rand 生成均勻分佈的偽隨機數。分佈在(0~1)之間

主要語法:rand(m,n)生成m行n列的均勻分佈的偽隨機數

rand(m,n,'double')生成指定精度的均勻分佈的偽隨機數,引數還可以

是'single'

rand(randstream,m,n)利用指定的randstream(我理解為隨機種子)生成偽

隨機數2,randn 生成標準正態分佈的偽隨機數(均值為0,方差為1)

主要語法:和上面一樣

3, randi 生成均勻分佈的偽隨機整數

主要語法:randi(imax)在開區間(0,imax)生成均勻分佈的偽隨機整數

randi(imax,m,n)在開區間(0,imax)生成mxn型隨機矩陣

r = randi([imin,imax],m,n)在開區間(imin,imax)生成mxn型隨機矩陣

10樓:憤進青年

rand是0-1隨機的

randn是正態分佈

採納哦 親

11樓:闊哥的寶貝

我沒有辦法明確回答您的問題,您的問題闡述的不清楚。

12樓:法瓊音

matlab裡的rand函式和randn函式都是隨機數生成函式。

rand函式,生成區間(0,1)上均勻分佈的隨機矩陣。rand函式格式:

r=rand(m,n) % 生成m行,n列服從均勻分佈(0,1)的隨機矩陣

randn函式,生成標準正態分佈n(0,1)的隨機矩陣。randn函式格式:

r=randn(m,n) % 生成m行,n列服從標準正態分佈n(0,1)的隨機矩陣

matlab裡的rand函式和randn函式用法有什麼區別?分別怎麼用?

13樓:匿名使用者

關鍵問題不是用法而是意義,rand是0-1的均勻分佈,randn是均值為0方差為1的正態分佈

用法自己help rand或者help randn一下就知道了rand(n)或randn(n)生成n*n的隨機數矩陣rand(n,m)或randn(m,n)生成m*n的隨機數矩陣

matlab中x=rand(1,8)是什麼意思?

14樓:開心地的春天

一、理論準備

matlab函式randn:產生均值為0,方差 σ^2 = 1,標準差σ = 1的正態分佈的隨機數或矩陣的函式。

用法:y = randn(n),返回一個n*n的隨機項的矩陣。如果n不是個數量,將返回錯誤資訊。

y = randn(m,n) 或 y = randn([m n]),返回一個m*n的隨機項矩陣。

y = randn(m,n,p,...) 或 y = randn([m n p...]),產生隨機陣列(感覺就是三維陣列,請看如下例子)。

1: >> rand(1,2,3)

2: ans(:,:,1) =

3:    0.445586200710899   0.646313010111265

4: ans(:,:,2) =

5:    0.709364830858073   0.754686681982361

6: ans(:,:,3) =

7:    0.276025076998578   0.679702676853675

y = randn(size(a)),返回一個和a有同樣維數大小的隨機陣列。

randn

s = randn('state'),估計和c++裡初始化隨機種子一個意思,隨便了。

二、舉例分析

產生一個隨機分佈的指定均值和方差的矩陣:將randn產生的結果乘以標準差,然後加上期望均值即可。例如,產生均值為0.6,方差為0.1的一個5*5的隨機數方式如下:

1: x = .6 + sqrt(0.1) * randn(5)

其他類似函式:rand, randperm, sprand, sprandn

三、拓展

用matlab隨機產生60個1到365之間的正數 1+fix(365*rand(1,60)),fix就是取整函式。

用rand函式隨機取100個從-1到1(原來寫成了2)的數x1,x2,...,x = rand(1,100) * 2 - 1。

逗號表示行,分號表示列。

matlab中rand函式的用途。

15樓:小丁創業

matlab中rand函式的用途是:matlab rand函式能產[01]間隨機數,由種子遞推出來,而種子在程式初始時候都一樣。例如和時間相關的隨機數,如rand('state',sum(100*clock))。

rand函式不是真正的隨機數生成器,而srand()會設定供rand()使用的隨機數種子。如果在第一次呼叫rand()之前沒有呼叫srand(),那麼系統會為程式設計師自動呼叫srand()。

而使用同種子相同的數呼叫 rand()會導致相同的隨機數序列被生成。

16樓:懂點工程也要懂點生活

matlab中rand()函式用法:

一、理論準備

matlab函式randn:產生均值為0,方差 σ^2 = 1,標準差σ = 1的正態分佈的隨機數或矩陣的函式。

用法:y = randn(n),返回一個n*n的隨機項的矩陣。如果n不是個數量,將返回錯誤資訊。

y = randn(m,n) 或 y = randn([m n]),返回一個m*n的隨機項矩陣。

y = randn(m,n,p,...) 或 y = randn([m n p...]),產生隨機陣列(感覺就是三維陣列,請看如下例子)。

1: >> rand(1,2,3)

2: ans(:,:,1) =

3: 0.445586200710899 0.646313010111265

4: ans(:,:,2) =

5: 0.709364830858073 0.754686681982361

6: ans(:,:,3) =

7: 0.276025076998578 0.679702676853675

y = randn(size(a)),返回一個和a有同樣維數大小的隨機陣列。

randn

s = randn('state'),估計和c++裡初始化隨機種子一個意思,隨便了。

二、舉例分析

產生一個隨機分佈的指定均值和方差的矩陣:將randn產生的結果乘以標準差,然後加上期望均值即可。例如,產生均值為0.6,方差為0.1的一個5*5的隨機數方式如下:

1: x = .6 + sqrt(0.1) * randn(5)

其他類似函式:rand, randperm, sprand, sprandn

三、拓展

用matlab隨機產生60個1到365之間的正數 1+fix(365*rand(1,60)),fix就是取整函式。

用rand函式隨機取100個從-1到2的數x1,x2,...,x = rand(1,100) * 2 - 1。

逗號表示行,分號表示列。

四、參考資料:

c 中rand 函式的範圍,c 中rand 函式的範圍

rand函式範圍 在某些平臺下 例如 windows rand max 只有 32768。如果需要的範圍大於 32768,那麼指定 min 和 max 引數就可以生成大於 rand max 的數了,或者考慮用 mt rand 來替代它。rand函式不是真正的隨機數生成器,而srand 會設定供ran...

matlab中fprintf和disp的有多大的區別啊

大野瘦子 區別很大,具體如下 一 輸出的目標不一樣 disp用來直接顯示在命令列裡,非常輕量,fprintf是f ile printf ormat 可以用來直接進行檔案的寫入,如果不指定檔案的fid那麼直接輸出到命令列。二 用法不同 disp即display,可用來顯示字串 計算結果等。例子 x 1...

如何在matlab中呼叫matlab中已有的函式

呼叫函式檔案 myfile.m clear clcfor t 1 10 y mylfg t end 自定義函式檔案 mylfg.m function y mylfg x 注意 函式名 mylfg 必須與檔名 mylfg.m 一致 y x 1 3 注 這種方法要求自定義函式必須單獨寫一個m檔案,不能與...