你说的是二元正态分布吧?(0,0)应该是均值,方差呢? 可以用mvnrnd函数生成多元正态分布随机数,例如,均值0,协方差矩阵为单位阵的随机数:r=mvnrnd([0 0],eye(2),10000); plot(r(:,1),r(:,2),'.') axis equal
用randn命令,不知道用法的help一下randn的n就是normal的意思,即正态分布
要返回100个在[0 1]上的正态随机数就不能那么做了 可以建立索需要的分布函数,例如这里用标准正态分布函数 function y=Nf(x) y=exp(-x.^2/2)/sqrt(2*pi); end 然后在命令行输入 R=rand(100,1) N=Nf(R)即可 至于绘图 plot(R,N,'.')
f=normrnd(0,1,1,100)hist(f)
randn(1,100)ezplot(@(x)normpdf(x,.5,1),[0 1]) %or x = -0.5:0.1:0.5;y = randn(100,1);hist(y,x)
randn([1,1000]),表示在【0,1】间生成1*1000的随机正态分布矩阵,在workspace里点一下返回值(默认为ans),然后在PLOTS那里就会提供各种表格图形的了(基于2015a版本)
y=randn(100,1);y=y+5;mean(y)var(y)
randn([m n])产生m行n列标准正态分布 一般用 a+b*rand() 移动和伸缩分布产生中心为a 标准差为b的正态分布 如果要在(m,n)区间内,那么生成完在截取就好了 一般区间足够大的话,超过区间的数不多
randn(100,1) %正态分布随机扰动rand(100,1) %0至1的均匀随机数
可以采用Box_Muller的方法.Box-Muller方法是以两组独立的随机数U和V,这两组数在(0,1]上均匀分布,用U和V生成两组独立的标准常态分布随机变量X和Yx=sqrt((-2)*ln(U))*cos(2*pi*V); Y=sqrt((-2)*ln(U))*sin(2*pi*V); matlab 程序function Norm_