当前位置:文档之家› Matlab 各种随机数设置

Matlab 各种随机数设置

Matlab 各种随机数设置randn(伪随机正态分布数)Normally distributed pseudorandom numbersSyntaxr = randn(n)randn(m,n)randn([m,n])randn(m,n,p,...)randn([m,n,p,...])randn(size(A))r = randn(..., 'double')r = randn(..., 'single')Descriptionr = randn(n) returns an n-by-n matrix containing pseudorandom values drawn from the standard normal distribution. randn(m,n) or randn([m,n]) returns an m-by-n matrix. randn(m,n,p,...) or randn([m,n,p,...]) returns an m-by-n-by-p-by-... array. randn returns a scalar. randn(size(A)) returns an array the same size as A.r = randn(..., 'double') or r = randn(..., 'single') returns an array of normal values of the specified class.Note The size inputs m, n, p, ... should be nonnegative integers. Negative integers are treated as 0.The sequence of numbers produced by randn is determined by the internal state of the uniform pseudorandom number generator that underlies rand, randi, and randn. randn uses one or more uniform values from that default stream to generate each normal value. Control the default stream using its properties and methods.Note In versions of MATLAB prior to 7.7 (R2008b), you controlled the internal state of the random number stream used by randn by calling randn directly with the 'seed' or 'state' keywords.ExamplesGenerate values from a normal distribution with mean 1 and standard deviation 2.r = 1 + 2.*randn(100,1);Generate values from a bivariate normal distribution with specified mean vector and covariance matrix.mu = [1 2];Sigma = [1 .5; .5 2]; R = chol(Sigma);z = repmat(mu,100,1) + randn(100,2)*R;Replace the default stream at MATLAB startup, using a stream whose seed is based on clock, so that randn will return different values in different MATLAB sessions. It is usually not desirable to do this more than once per MATLAB session.RandStream.setDefaultStream ...(RandStream('mt19937ar','seed',sum(100*clock)));randn(1,5)Save the current state of the default stream, generate 5 values, restore the state, and repeat the sequence.defaultStream = RandStream.getDefaultStream;savedState = defaultStream.State;z1 = randn(1,5)defaultStream.State = savedState;z2 = randn(1,5) % contains exactly the same values as z1Normrnd (随机正态分布数)Normal random numbersSyntaxR = normrnd(mu,sigma)R = normrnd(mu,sigma,m,n,...)R = normrnd(mu,sigma,[m,n,...])DescriptionR = normrnd(mu,sigma) generates random numbers from the normal distribution with mean parameter mu and standard deviation parameter sigma. mu and sigma can be vectors, matrices, or multidimensional arrays that have the same size, which is also the size of R. A scalar input for mu or sigma is expanded to a constant array with the same dimensions as the other input.R = normrnd(mu,sigma,m,n,...) or R = normrnd(mu,sigma,[m,n,...]) generates an m-by-n-by-... array. The mu, sigma parameters can each be scalars or arrays of the same size as R.Examplesn1 = normrnd(1:6,1./(1:6))n1 =2.1650 2.31343.02504.0879 4.8607 6.2827n2 = normrnd(0,1,[1 5])n2 =0.0591 1.7971 0.2641 0.8717 -1.4462n3 = normrnd([1 2 3;4 5 6],0.1,2,3)n3 =0.9299 1.9361 2.96404.12465.0577 5.9864randperm (RandStream) (区域内的所有整数的随机分布)Random permutationrandperm(s,n)Descriptionrandperm(s,n) generates a random permutation of the integers from 1 to n. For example, randperm(s,6) might be [2 4 5 6 1 3]. randperm(s,n) uses random values drawn from the random number stream s.betarnd (贝塔分布)贝塔分布是一个作为伯努利分布和二项式分布的共轭先验分布的密度函数SyntaxR = betarnd(A,B)R = betarnd(A,B,m,n,...)R = betarnd(A,B,[m,n,...])DescriptionR = betarnd(A,B) generates random numbers from the beta distribution with parameters specified by A and B. A and B can be vectors, matrices, or multidimensional arrays that have the same size, which is also the size of R. A scalar input for A or B is expanded to a constant array with the same dimensions as the other input.R = betarnd(A,B,m,n,...) or R = betarnd(A,B,[m,n,...]) generates an m-by-n-by-... array containing random numbers from the beta distribution with parameters A and B. A and B can each be scalars or arrays of the same size as R.Examplesa = [1 1;2 2];b = [1 2;1 2];r = betarnd(a,b)r =0.6987 0.61390.9102 0.8067r = betarnd(10,10,[1 5])r =0.5974 0.4777 0.5538 0.5465 0.6327r = betarnd(4,2,2,3)r =0.3943 0.6101 0.57680.5990 0.2760 0.5474Binornd (二项式分布)二项分布(binomial distribution)就是对这类只具有两种互斥结果的离散型随机事件的规律性进行描述的一种概率分布。

SyntaxR = binornd(N,P)R = binornd(N,P,m,n,...)R = binornd(N,P,[m,n,...])DescriptionR = binornd(N,P) generates random numbers from the binomial distribution with parameters specified by the number of trials, N, and probability of success for each trial, P. N and P can be vectors, matrices, or multidimensional arrays that have the same size, which is also the size of R.A scalar input for N or P is expanded to a constant array with the same dimensions as the other input.R = binornd(N,P,m,n,...) or R = binornd(N,P,[m,n,...]) generates an m-by-n-by-... array containing random numbers from the binomial distribution with parameters N and P. N and P can each be scalars or arrays of the same size as R.AlgorithmThe binornd function uses the direct method using the definition of the binomial distribution as a sum of Bernoulli random variables.Examplesn = 10:10:60;r1 = binornd(n,1./n)r1 =2 1 0 1 1 2r2 = binornd(n,1./n,[1 6])r2 =0 1 2 1 3 1r3 = binornd(n,1./n,1,6)r3 =0 1 1 1 0 3chi2rnd (卡方分布)若n个相互独立的随机变量ξ₁、ξ₂、……、ξn ,均服从标准正态分布,则这n个服从标准正态分布的随机变量的平方和构成一新的随机变量,其分布规律称为χ²分布SyntaxR = chi2rnd(V)R = chi2rnd(V,m,n,...)R = chi2rnd(V,[m,n,...])DescriptionR = chi2rnd(V) generates random numbers from the chi-square distribution with degrees of freedom parameters specified by V. V can be a vector, a matrix, or a multidimensional array. R is the same size as V.R = chi2rnd(V,m,n,...) or R = chi2rnd(V,[m,n,...]) generates an m-by-n-by-... array containing random numbers from the chi-square distribution with degrees of freedom parameter V. V can be a scalar or an array of the same size as R.ExamplesNote that the first and third commands are the same, but are different from the second command.r = chi2rnd(1:6)r =0.0037 3.0377 7.8142 0.9021 3.2019 9.0729r = chi2rnd(6,[1 6])r =6.5249 2.6226 12.2497 3.0388 6.3133 5.0388r = chi2rnd(1:6,1,6)r =0.7638 6.0955 0.8273 3.2506 1.5469 10.9197Copularnd (连接函数分布)Copula函数描述的是变量间的相关性,实际上是一类将联合分布函数与它们各自的边缘分布函数连接在一起的函数SyntaxU = copularnd('Gaussian',rho,N)U = copularnd('t',rho,NU,N)U = copularnd('family',alpha,N)DescriptionU = copularnd('Gaussian',rho,N) returns N random vectors generated from a Gaussian copula with linear correlation parameters rho. If rho is a p-by-p correlation matrix, U is an n-by-p matrix. If rho is a scalar correlation coefficient, copularnd generates U from a bivariate Gaussian copula. Each column of U is a sample from a Uniform(0,1) marginal distribution.U = copularnd('t',rho,NU,N) returns N random vectors generated from a t copula with linear correlation parameters rho and degrees of freedom NU. If rho is a p-by-p correlation matrix, U is an n-by-p matrix. If rho is a scalar correlation coefficient, copularnd generates U from a bivariate t copula. Each column of U is a sample from a Uniform(0,1) marginal distribution.U = copularnd('family',alpha,N) returns N random vectors generated from the bivariateArchimedean copula determined by family, with scalar parameter alpha. family is Clayton, Frank, or Gumbel. U is an n-by-2 matrix. Each column of U is a sample from a Uniform(0,1) marginal distribution.ExamplesDetermine the linear correlation parameter corresponding to a bivariate Gaussian copula having a rank correlation of -0.5.tau = -0.5rho = copulaparam('gaussian',tau)rho =-0.7071% Generate dependent beta random values using that copulau = copularnd('gaussian',rho,100);b = betainv(u,2,2);% Verify that the sample has a rank correlation% approximately equal to tautau_sample = corr(b,'type','kendall')tau_sample =1.0000 -0.4537-0.4537 1.0000Gamrnd (伽马分布)伽玛分布(Gamma distribution)是统计学的一种连续概率函数。

相关主题