matlab中想在一定分佈的資料中隨機取樣N個資料,怎麼做呢

2021-03-27 20:43:15 字數 7175 閱讀 2624

1樓:楊好巨蟹座

一、matlab在一個集合中隨機取數:function 'randperm'

for example:

a=[1 2 3 4 5 6 7 8 9 10];

b=a(randperm(length(a)));

x=b(1:5);

matlab生成隨機資料

matlab本身提供很多的函式來生成各種各樣的隨機資料:

normrnd 可以生成一定均值和標準差的正態分佈

gamrnd 可以生成gamma分佈的偽隨機數矩陣

chi2rnd 可以生成卡方分佈的偽隨機數矩陣

trnd 可以生成t分佈的偽隨機數矩陣

frnd 可以生成f分佈的偽隨機數矩陣

raylrnd 可以生成rayleigh分佈的偽隨機數矩陣

關於具體的函式語法,你可以在matlab中用help命令得到更詳細的說明。

我要說的是,這些生成的偽隨機矩陣的標準差,均值等都是和你給的具體資料很接近的,但是,不是一樣啊。也就是說matlab生成的偽隨機矩陣不是一定準確的,只能是很接近的。另外,要明白什麼是偽隨機數。

隨機數的生成通常有兩種方法:一是依賴一些專用的電子元件發出隨機訊號,這種方法又稱為物理生成法。另一類就是通過數學的演算法,仿照隨機數發生的規律計算出隨機數,由於產生的隨機數是有數學公式計算出來的,所以這類隨機數又稱為偽隨機數。

你也可以讓matlab生成一個隨機的正態分佈矩陣,然後用normstat來求得生成矩陣的真實方差和矩陣。其實matlab中求均值和方差的函式都是以*stat結尾的。比如上面的求正態分佈的normstat,求gam分佈的均值和方差的gamstat,求rayleigh分佈的均值和方差的raylstat等。

同樣的,還有以*pdf結尾的都是函式的概率密度,以*cdf結尾的函式是分佈函式,以inv結尾的函式為逆分佈函式求解函式。比如,正態分佈的概率密度normpdf,正態分佈的分佈函式normcdf,正態分佈的逆分佈函式求解函式為norminv。同樣道理的還有possion分佈,gamma分佈,卡方分佈,t分佈,f分佈,rayleigh分佈等,加上字尾都是相應的概率密度函式,分佈函式。

二、統計程式設計:

此文純粹是轉貼

第4章 概率統計

本章介紹matlab在概率統計中的若干命令和使用格式,這些命令存放於matlabr12\toolbox\stats中.

4.1 隨機數的產生

4.1.1 二項分佈的隨機資料的產生

命令 引數為n,p的二項隨機資料

函式 binornd

格式 r = binornd(n,p)

%n,p為二項分佈的兩個引數,返回服從引數為n,p的二項分佈的隨機數,n,p大小相同.

r =binornd(n,p,m) %m指定隨機數的個數,與r同維數.

r = binornd(n,p,m,n)

%m,n分別表示r的行數和列數

例4-1

>>r=binornd(10,0.5)

r =3

>> r=binornd(10,0.5,1,6)

r =8 1 3 7 6 4

>>r=binornd(10,0.5,[1,10])

r =6 8

4 6 7 5 3 5 6 2

>>r=binornd(10,0.5,[2,3])

r =7 5

86 5 6

>>n =

10:10:60;

>>r1 = binornd(n,1./n)

r1 =

2 1 0 1 1 2

>>r2 = binornd(n,1./n,[1 6])

r2 =

0 1 2 1 3 1

4.1.2

正態分佈的隨機資料的產生

命令 引數為μ,σ的正態分佈的隨機資料

函式 normrnd

格式 r = normrnd(mu,sigma)

%返回均值為mu,標準差為sigma的正態分佈的隨機資料,r可以是向量或矩陣.

r =normrnd(mu,sigma,m) %m指定隨機數的個數,與r同維數.

r =normrnd(mu,sigma,m,n) %m,n分別表示r的行數和列數

例4-2

>>n1 =

normrnd(1:6,1./(1:6))

n1 =

2.1650 2.3134 3.0250 4.0879 4.8607 6.2827

>>n2 = normrnd(0,1,[1 5])

n2 =

0.0591 1.7971 0.2641 0.8717 -1.4462

>>n3 = normrnd([1 2 3;4 5 6],0.1,2,3) %mu為均值矩陣

n3 =

0.9299 1.9361 2.9640

4.1246 5.0577 5.9864

>>r=normrnd(10,0.5,[2,3]) %mu為10,sigma為0.5的2行3列個正態隨機數r =

9.7837 10.0627 9.4268

9.1672

10.1438 10.5955

4.1.3 常見分佈的隨機數產生

常見分佈的隨機數的使用格式與上面相同

表4-1 隨機數產生函式表

函式名呼叫形式注 釋

unifrnd

unifrnd (

a,b,m,n)

[a,b]上均勻分佈(連續) 隨機數

unidrnd

unidrnd(n,m,n)

均勻分佈(離散)隨機數

exprnd

exprnd(lambda,m,n)

引數為lambda的指數分佈隨機數

normrnd

normrnd(mu,sigma,m,n)

引數為mu,sigma的正態分佈隨機數

chi2rnd

chi2rnd(n,m,n)

自由度為n的卡方分佈隨機數

trnd

trnd(n,m,n)

自由度為n的t分佈隨機數

frnd

frnd(n1, n2,m,n)

第一自由度為n1,第二自由度為n2的f分佈隨機數

gamrnd

gamrnd(a, b,m,n)

引數為a, b的分佈隨機數

betarnd

betarnd(a, b,m,n)

引數為a, b的分佈隨機數

lognrnd

lognrnd(mu, sigma,m,n)

引數為mu,

sigma的對數正態分佈隨機數

nbinrnd

nbinrnd(r, p,m,n)

引數為r,p的負二項式分佈隨機數

ncfrnd

ncfrnd(n1, n2, delta,m,n)

引數為n1,n2,delta的非中心f分佈隨機數

nctrnd

nctrnd(n, delta,m,n)

引數為n,delta的非中心t分佈隨機數

ncx2rnd

ncx2rnd(n, delta,m,n)

引數為n,delta的非中心卡方分佈隨機數

raylrnd

raylrnd(b,m,n)

引數為b的瑞利分佈隨機數

weibrnd

weibrnd(a, b,m,n)

引數為a, b的韋伯分佈隨機數

binornd

binornd(n,p,m,n)

引數為n, p的二項分佈隨機數

geornd

geornd(p,m,n)

引數為p的幾何分佈隨機數

hygernd

hygernd(m,k,n,m,n)

引數為m,k,n的超幾何分佈隨機數

poissrnd

poissrnd(lambda,m,n)

引數為lambda的泊松分佈隨機數

4.1.4

通用函式求各分佈的隨機資料

命令 求指定分佈的隨機數

函式 random

格式 y = random('name',a1,a2,a3,m,n)

%name的取值見表4-2;a1,a2,a3為分佈的引數;m,n指定隨機數的行和列

4.2隨機變數的概率密度計算

4.2.1 通用函式計算概率密度函式值

命令 通用函式計算概率密度函式值

函式 pdf

格式 y=pdf(name,k,a)

y=pdf(name,k,a,b)

y=pdf(name,k,a,b,c)

說明返回在x=k處,引數為a,b,c的概率密度值,對於不同的分佈,引數個數是不同;name為分佈函式名,其取值如表4-2.

表4-2 常見分佈函式表

name的取值

函式說明

'beta'

或'beta'

beta分佈

'bino'

或'binomial'

二項分佈

'chi2'

或'chisquare'

卡方分佈

'exp'

或'exponential'

指數分佈

'f'或

'f'f分佈

'gam'

或'gamma'

gamma分佈

'geo'

或'geometric'

幾何分佈

'hyge'

或'hypergeometric'

超幾何分佈

'logn'

或'lognormal'

對數正態分佈

'nbin'

或'negative binomial'

負二項式分佈

'ncf'

或'noncentral f'

非中心f分佈

'nct'

或'noncentral t'

非中心t分佈

'ncx2'

或'noncentral chi-square'

非中心卡方分佈

'norm'

或'normal'

正態分佈

'poiss'

或'poisson'

泊松分佈

'rayl'

或'rayleigh'

瑞利分佈

't'或

't't分佈

'unif'

或'uniform'

均勻分佈

'unid'

或'discrete uniform'

離散均勻分佈

'weib'

或'weibull'

weibull分佈

4.2.2 專用函式計算概率密度函式值

命令 二項分佈的概率值

函式 binopdf

格式 binopdf (k, n, p) %等同於, p —

每次試驗事件a發生的概率;k—事件a發生k次;n—試驗總次數

命令 泊松分佈的概率值

函式 poisspdf

格式 poisspdf(k, lambda) %等同於

命令 正態分佈的概率值

函式 normpdf(k,mu,sigma) %計算引數為μ=mu,σ=sigma的正態分佈密度函式在k處的值

專用函式計算概率密度函式列表如表4-3.

admin 2007-11-29 20:43

表4-3

專用函式計算概率密度函式表

函式名呼叫形式

注 釋unifpdf

unifpdf (x, a, b)

[a,b]上均勻分佈(連續)概率密度在x=x處的函式值

unidpdf

unidpdf(x,n)

均勻分佈(離散)概率密度函式值

exppdf

exppdf(x, lambda)

引數為lambda的指數分佈概率密度函式值

normpdf

normpdf(x, mu, sigma)

引數為mu,sigma的正態分佈概率密度函式值

chi2pdf

chi2pdf(x, n)

自由度為n的卡方分佈概率密度函式值

tpdf

tpdf(x, n)

自由度為n的t分佈概率密度函式值

fpdf

fpdf(x, n1, n2)

第一自由度為n1,第二自由度為n2的f分佈概率密度函式值

gampdf

gampdf(x, a, b)

引數為a, b的分佈概率密度函式值

betapdf

betapdf(x, a, b)

引數為a,

b的分佈概率密度函式值

lognpdf

lognpdf(x,

mu, sigma)

引數為mu, sigma的對數正態分佈概率密度函式值

nbinpdf

nbinpdf(x, r, p)

引數為r,p的負二項式分佈概率密度函式值

ncfpdf

ncfpdf(x, n1, n2, delta)

引數為n1,n2,delta的非中心f分佈概率密度函式值

nctpdf

nctpdf(x, n, delta)

引數為n,delta的非中心t分佈概率密度函式值

ncx2pdf

ncx2pdf(x, n, delta)

引數為n,delta的非中心卡方分佈概率密度函式值

raylpdf

raylpdf(x, b)

引數為b的瑞利分佈概率密度函式值

weibpdf

weibpdf(x, a, b)

引數為a,

b的韋伯分佈概率密度函式值

binopdf

binopdf(x,n,p)

引數為n,

p的二項分佈的概率密度函式值

geopdf

geopdf(x,p)

引數為 p的幾何分佈的概率密度函式值

hygepdf

hygepdf(x,m,k,n)

引數為 m,k,n的超幾何分佈的概率密度函式值

poisspdf

poisspdf(x,lambda)

引數為lambda的泊松分佈的概率密度函式值

4.2.3

常見分佈的密度函式作圖

>>x = 0:10;

>>y = binopdf(x,10,0.5);

>>plot(x,y,'+')

matlab如何生成指定分佈的隨機數

抄別的一個函式給你吧 function y dis rand x,p,n dis rand 產生離散分佈隨機數 x 可能取值 p 取值概率 n 擬生成隨機數的數目 cp cumsum p y zeros 1,n for i 1 n y i x sum cp rand 1 1 end演算法說明 利用m...

matlab中求定積分的運算,Matlab怎麼計算定積分?

int 函式f x a,b 計算函式f x 在區間 a,b 的定積分 quadl 該函式使用了稱為洛巴託求積 lobatto quadrature 的演算法,對於高精度和光滑函式效率更高 i quadi func,a,b,tol func是被積函式,a,b是積分限,tot是期望的絕對誤差 如果不提供...

matlab中如何產生n個隨機數,和為定值

1 首先在電腦中,找到並開啟matlab軟體,二項分佈隨機數的產生。2 接著輸入二項分佈隨機數x b n,p n為發生次數,p為發生概率,如下圖所示。3 然後輸入泊松分佈,引數為p,如下圖所示。4 接著輸入指數分佈,引數為 如下圖所示。5 最後正態分佈,x n 2 如下圖所示,就完成了。實現方法 首...