matlab生成满足二维高斯(正态)分布的随机数/作图程序
(2012-04-22 10:03:56)
标签:
杂谈 |
分类: 经典算法/数据挖掘/神经网络 |
产生满足二维高斯(正态)分布的随机数:
mu=[0,2];%数学期望
sigma=[1 0;0,4];%协方差矩阵
r=mvnrnd(mu,sigma,50)%生成50个样本
help mvnrnd
MVNRND Random vectors from the multivariate normal
distribution.
生成二维高斯(正态)分布图形——meshgrid
%two-dimensional Normal Distribution
%
% (C)2008 TangSheng
%
function NormDis(u1,u2,sig1,sig2,rho)
�fault
if nargin<5, rho = 0;
end
if nargin<4, sig2 =
2;end
if nargin<3, sig1 =
1;end
if nargin<2, u2 =
2;end
if nargin<1, u1 =
6;end
%global ava;
ava =
[u1,u2];
cov_xy =
rho*sig1*sig2;
%global sigma;
sigma = [sig1 cov_xy ;cov_xy sig2
];
%------数据显示网格范围------------%
scop1_l = u1-sqrt(sig1)-2;
scop1_r = u1+sqrt(sig1)+2;
scop2_l = u2-sqrt(sig2)-2;
scop2_r = u2+sqrt(sig2)+2;
[X,Y] = meshgrid(scop1_l:0.2:scop1_r,scop2_l:0.2:scop2_r);
xy = [X(:) Y(:)];
p =
mvnpdf(xy,ava,sigma);
P = reshape(p,size(X));
mesh(X,Y,P);
name1 = ['二维正态分布 N(',num2str(u1),',',num2str(u2)];
name2 =
[',',num2str(sig1),',',num2str(sig2),',',num2str(rho),')'];
name = [name1,name2];
title(name);
end