[Matlab] Normal Distribute
1 help randn;
2 例子
产生一个符合期望为1标准差为2的正态分布序列
r = 2.*randn(100,1) +1; // r ~ N(1, sqrt(2))
3 ?
4 Matlab 怎么生成随机的高斯分布点?
![[Matlab] Normal Distribute [Matlab] Normal Distribute](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzUwMC8wM2I0MzMzMmZiMDk0ZDU4MTVkMTkxMDJlNTMxZTVkNC5KUEVH)
%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
由于实验需要,需要生成两类模式的数据,同时这两类数据要服从正态分布(高斯分布)。3 ?
使用指定的期望向量和相关矩阵,产生一个符合二元正态分布的序列
mu = [1 2];
Sigma = [1 .5; .5 2]; R = chol(Sigma);
z = repmat(mu,100,1) + randn(100,2)*R;
4 Matlab 怎么生成随机的高斯分布点?
%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
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