用matlab产生1000个服从某种条件下的正态分布的随机数

比如知道均值M和方差D,如何产生这样1000个随机数?
我看了一下baidu里原来类似的提问,照着里面的一些回答去试,但是好像步骤错误,无法产生呢。麻烦顺便讲一下在matlab里的操作步骤。谢谢!

mvnrnd(mu,sigma,number)——产生number个均值为mu,协方差矩阵为sigma的正态分布随机数。

例子:mvnrnd([1,2],[2 1;1 4],100)

要求随机数范围在0-1之间,均值可取0.5;又由于正态分布99.7%的值在平均数左右三个标准差的范围内,所以标准差取0.5/3。

因为只是要近似服从正态分布,可以考虑把超出边界的少量数据直接放在中间,影响不大:

123D=randn(1000,1)/6+0.5;D(D<0|D>1)=0.5;hist(D,30)

扩展资料:

随机数在密码学中非常重要,保密通信中大量运用的会话密钥的生成即需要真随机数的参与。如果一个随机数生成算法是有缺陷的,那么会话密钥可以直接被推算出来。若果真发生这种事故,那么任何加密算法都失去了意义。

密码学中大量利用伪随机数生成器的应用还有流密码。流密码的著名例子是RC4。流密码的原理是利用一个密码学安全的伪随机数生成器根据密钥产生一串密码学安全的伪随机比特列,再将消息与上述随机比特列按位异或运算。

参考资料来源:百度百科-随机数

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-11-08
mvnrnd(mu,sigma,number)——产生number个均值为mu,协方差矩阵为sigma的正态分布随机数
例子:
mvnrnd([1,2],[2 1;1 4],100)本回答被提问者和网友采纳
第2个回答  2011-02-08
x=randn(1,1000)产生均值为0 方差为1的正太分布。X=D^1/2*x+M得到的就为均值M方差为D的随机数

用matlab产生1000个服从某种条件下的正态分布的随机数
mvnrnd(mu,sigma,number)——产生number个均值为mu,协方差矩阵为sigma的正态分布随机数。例子:mvnrnd([1,2],[2 1;1 4],100)要求随机数范围在0-1之间,均值可取0.5;又由于正态分布99.7%的值在平均数左右三个标准差的范围内,所以标准差取0.5\/3。因为只是要近似服从正态分布,可以考虑把超...

Matlab 用randn创建1000个服从正态分布的随机数,分布的均值为70,标准差...
hist的第二项是隔的个数,你正态分布最好分隔在10到15组比较好,你分的不对,不是数组。x=0:0.2:7;y=70+3.5.*randn(1000,1);hist(y,10)

matlab得到标准正态分布的随机数
m=1000;n=10;u=rand(m,n);产生a~b均匀分布 a=-1;b=1;x=a+(b-a)*u;正态分布函数的逆是求不出来的 只能通过瑞利分布产生 产生时需要两个0~1均匀分布,所以需新定义v sigma=1;mu=0;v=rand(size(u));z=sqrt(2*sigma^2*log(1.\/(1-u))).*cos(2*pi*v);利用上述标准正态分...

matlab怎么生成正态分布随机数
第一步我们首先需要知道matlab中可以使用randn函数生成正态分布随机数,在命令行窗口中输入“help randn”,可以看到randn函数的使用方法,如下图所示:第二步输入randn(5),生成一个均值为0,方差和标准差为1的5行5列正态分布随机数矩阵,如下图所示:第三步输入randn(3,4),可以生成一个3行4列的...

matlab想随机生成1000个不同的坐标,如何办到?
randn是产生正态分布的随机数,这里应该用rand:P = rand(1000, 2) * 100;plot(P(:,1), P(:,2), '*')

用matlab生成服从某一分布的随机数
连续型随机变量生成逆变换算法: 以均匀分布U(0,1)为基础,通过公式[公式],可以生成连续变量。指数分布: 利用逆变换,例如公式[公式]和[公式],可以生成指数分布的随机数。拒绝法: 通过先模拟[公式]的随机变量,然后找到满足[公式]的c,如[公式]的一阶导数等于0,解得[公式],实现正态分布的模拟...

Matlab如何生成正太分布随机数,并画出直方图?
如果需要的是频率直方图,可以考虑如下做法:x=normrnd(MU,SIGMA,m,n): %生成m×n形式的正态分布的随机数矩阵。[a,b]=hist(x);bar(b,a\/sum(a))%频数直方图 比如:x=normrnd(1,1,100,1) %生成m×n形式的正态分布的随机数矩阵。[a,b]=hist(x);bar(b,a\/sum(a))%频数直方图 建...

如何用matlab产生随机数?
用MATLAB产生随机数,可以使用内置的随机数生成函数。常用的有`rand`、`randn`等。以实际演示为例。若要生成一个[0,1)范围内的随机数,使用`rand`函数即可。例如:`rand(1)`。若需生成正态分布随机数,使用`randn`函数,例如:`randn(1)`。若希望生成指定范围内(如[0,10])的随机数,可以将`...

如何matlab取正态分布随机数
运用normrnd函数。1. R=normrnd(MU,SIGMA):生成服从正态分布(MU参数代表均值,SIGMA参数代表标准差)的随机数。输入的向量或矩阵MU和SIGMA必须形式相同,输出R也和它们形式相同。标量输入将被扩展成和其它输入具有相同维数的矩阵。2. R=normrnd(MU,SIGMA,m,n): 生成m×n形式的正态分布的随机数矩阵...

用matlab如何生成一组服从对数正态分布的数据
M = 6000;V = 2;MU = log(M^2 \/ sqrt(V+M^2));SIGMA = sqrt(log(V\/M^2 + 1));R = lognrnd(MU,SIGMA,1,1000);

相似回答