[Matlab] Normal Distribute

1 help randn;


2 例子
产生一个符合期望为1标准差为2的正态分布序列

r = 2.*randn(100,1) +1;      // r ~ N(1,  sqrt(2))


3  ?
使用指定的期望向量和相关矩阵,产生一个符合二元正态分布的序列
mu = [1 2];
Sigma = [1 .5; .5 2]; R = chol(Sigma);
z = repmat(mu,100,1) + randn(100,2)*R;

4  Matlab 怎么生成随机的高斯分布点?
[Matlab] Normal Distribute

%randn生成均值0方差1的随机数
blue=randn(100,2)+3.5;
red=randn(10,2)+1;
plot(blue(:,1),blue(:,2),'blue*',red(:,1),red(:,2),'red*')



5 matlab生成两类服从高斯分布的数据 mvnrnd

由于实验需要,需要生成两类模式的数据,同时这两类数据要服从正态分布(高斯分布)。
使用matlab来实现:
mu = [2 3];   // 需要生成的数据的均值
SIGMA = [1 0; 0 2];  // 需要生成的数据的自相关矩阵(相关系数矩阵)
r = mvnrnd( mu, SIGMA, 100 );
plot( r(:,1), r(:,2), 'r+' );
hold on;
mu = [7 8];
SIGMA = [ 1 0; 0 2];
r2 = mvnrnd( mu, SIGMA, 100 );
plot( r2(:,1), r2(:,2), '*' )

mvnrnd:Multivariate normal random numbers 
解释:mvnrnd 是用来生成多维正态数据的。
具体参数大家可以参考matlab的帮助手册。 help xx

[Matlab] Normal Distribute


6 randn : 产生均值为0,方差 σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数。

用法: Y = randn(n)

返回一个n*n的随机项的矩阵。

Y = randn(m,n)

返回一个m*n的随机项矩阵。


7 怎样用matlab拟合一组符合高斯分布的数据,得出完整的高斯函数表达式.
整个过程要用程序实现:x[1:1:124],y[Px](为一组符合高斯分部的数组)


使用matlab中的拟合工具箱吧,很简单的.

在command windows下输入cftool进入拟合工具箱,Data中输入你的数据,然后使用Fitting进行拟合,里面可以选择

Gaussian,这样可以得出完整的高斯函数表达式.



8 产生一个随机分布的指定均值和方差的矩阵:将randn产生的结果乘以标准差,然后加上期望均值即可。例如,产生均值为0.6,方差为0.1的一个5*5的随机数方式如下:

x = .6 + sqrt(0.1) * randn(5)


9 Matlab下面有

p=normpdf( x,  miu,  sigma )   求出x处的概率密度。

p=normcdf( x,  miu,  sigma )   求出X<x的累积概率密度(就是从负无穷大到x处的概率密度的积分)


10