matlab產生隨機數或隨機矩陣

2021-07-29 14:55:03 字數 2434 閱讀 4928

matlab中隨機數生成器主要有:

betarnd 貝塔分布的隨機數生成器

binornd 二項分布的隨機數生成器

chi2rnd 卡方分布的隨機數生成器

exprnd 指數分布的隨機數生成器

frnd f分布的隨機數生成器

gamrnd 伽瑪分布的隨機數生成器

geornd 幾何分布的隨機數生成器

hygernd 超幾何分布的隨機數生成器

lognrnd 對數正態分佈的隨機數生成器

nbinrnd 負二項分布的隨機數生成器

ncfrnd 非中心f分布的隨機數生成器

nctrnd 非中心t分布的隨機數生成器

ncx2rnd 非中心卡方分布的隨機數生成器

normrnd 正態(高斯)分布的隨機數生成器,normrnd(a,b,c,d):產生均值為a、方差為b大小為cxd的隨機矩陣

poissrnd 泊松分布的隨機數生成器

rand:產生均值為0.5、幅度在0~1之間的偽隨機數,rand(n):生成0到1之間的n階隨機數方陣,rand(m,n):生成0到1之間的m×n的隨機數矩陣

randn:產生均值為0、方差為1的高斯白雜訊,使用方式同rand

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

randperm(n):產生1到n的均勻分布隨機序列

raylrnd 瑞利分布的隨機數生成器

trnd 學生氏t分布的隨機數生成器

unidrnd 離散均勻分布的隨機數生成器

unifrnd 連續均勻分布的隨機數生成器

weibrnd 威布林分布的隨機數生成器

計算機不可能產生真正的隨機數,只是偽隨機數。matlab中rand和randn是產生隨機數的命令,x=rand(1,n) 產生(0,1)區間均勻分布的長度為n的隨機訊號,x=randn(1,n)產生長度為n且具有零均值和單位方差的正態分佈的隨機訊號。

以下介紹利用matlab產生均值為0,方差為1的符合正態分佈的高斯隨機數。

我們利用的函式為normrnd(a,b,c,d):產生均值為a、標準為b大小為cxd的隨機矩陣,它有如下三種引數形式:

r=normrnd(μ,σ)

r=normrnd(μ,σ):生成服從正態分佈(μ引數代表均值,σ引數代表標準差)的隨機數。輸入的向量或矩陣μ和σ必須形式相同,輸出r也和它們形式相同。標量輸入將被擴充套件成和其它輸入具有相同維數的矩陣。

r=normrnd(μ,σ,m)

r=norrmrnd(μ,σ,m):生成服從正態分佈(μ引數代表均值,σ引數代表標準差)的隨機數矩陣,矩陣的形式由m定義。m是乙個1×2向量,其中的兩個元素分別代表返回值r中行與列的維數。

r=normrnd(μ,σ,m,n)

r=normrnd(μ,σ,m,n): 生成m×n形式的正態分佈的隨機數矩陣。其中μ為均值,σ為標準方差,m、n為矩陣大小;

>> r = normrnd(0,1,4,4) %產生4×4的標準正態分佈矩陣

r = 0.5377

0.3188

3.5784

0.7254

1.8339 -1.3077

2.7694 -0.0631

-2.2588 -0.4336 -1.3499

0.7147

0.8622

0.3426

3.0349 -0.2050

>> var(r) %預設方差公式

ans =

3.0868

0.6085

5.1253

0.2465

>> var(r,0) %預設方差公式(n-1)

ans =

3.0868

0.6085

5.1253

0.2465

>> var(r,1) %方差公式(n)

ans =

2.3151

0.4564

3.8440

0.1849

>> var(r,0,1) %列操作,第二引數為方差方式,第三引數為行、列標記

ans =

3.0868

0.6085

5.1253

0.2465

>> var(r,0,2) %行操作,第二引數為方差方式,第三引數為行、列標記

ans =

2.3549

3.3782

1.6184

2.0146

>> var(r') %check the ans

ans =

2.3549

3.3782

1.6184

2.0146

>> var(r(:)) %矩陣所有元素的方差

ans =

2.6020

參考:

matlab產生隨機數

matlab中生成隨機數主要有三個函式 rand,randn,randi 1,rand 生成均勻分布的偽隨機數。分布在 0 1 之間 主要語法 rand m,n 生成m行n列的均勻分布的偽隨機數 rand m,n,double 生成指定精度的均勻分布的偽隨機數,引數還可以是 single rand ...

MATLAB產生偽隨機數

p haltonset d 構造乙個d 維點集p,這是haltonset具有預設屬性設定的。輸入引數d是p的維數。p haltonset d,name,value 集特性的p使用乙個或多個名稱值對引數。將每個屬性名稱括在引號中。例如,haltonset 5,leap 3 從第一點 第四點 第七點 第...

產生隨機數

先說明一下rand,這個函式用來產生偽隨機數。比如,產生1000的兩個隨機數,產生的兩個一般上是不同的,但如果要產生80個100以內的隨機數,僅用rand函式就不夠。因為產生80個100以內的隨機數,至少有兩個數相等的概率太大了 srand函式,並不能使產生的隨機數完全不同。你可以執行以下這串 in...