matlab 生成二维或三维空间中知足正态分布的样本点,并绘图

       本篇文章主要讲解在matlab环境下,如何随机生成知足高斯分布的样本点。函数

       众所周知,高斯分布是一种很常见的数据分布,也是不少实际例子中出现最多的一种分布。咱们今天就来学习在matlab环境下绘制出随机分布的知足高斯分布的数据点。学习

       1.二维空间二分类问题spa

%%参数设置
mean = [2 3];   %%均值
SIGMA = [1 0;0 2];  %%协方差矩阵,假设各维度独立,故可设为对角阵
r = mvnrnd(mean,SIGMA,100);  %%最后一个参数表示生成该类100个样本点
plot(r(:,1),r(:,2),'r+'); 
grid on;               %%描绘出网格
hold on;               %%停留在图中,
mean = [4 2];
SIGMA = [1 0;0 2];
r2 = mvnrnd(mean,SIGMA,100);
plot(r2(:,1),r2(:,2),'b*')
grid on;

       运行结果:


以上不少都是绘图的一些基本命令,最重要的是mvnrnd(mean,SIGMA,100)这个函数,第一个参数表示随机生成的样本点的均值,第二个参数表示这些样本点的协方差矩阵,咱们能够假设各维度相互独立,也就是设为对角阵(只有主对角线上的元素不为0),第三个参数100表示生成100个样本点。plot就是绘制图像的函数,前两个参数分别对应的是样本点的第一维和第二维的值,而第三个参数表示'r+',用红色的+标记。那么咱们可用的颜色和标记符号有哪些呢? 请参照下面这张图就行了。3d




          2.二维空间三分类问题code

mean = [2 3];   %%均值
SIGMA = [1 0;0 2];  %%协方差矩阵,假设各维度独立,故可设为对角阵
r = mvnrnd(mean,SIGMA,100);  %%最后一个参数表示生成该类10个样本点
plot(r(:,1),r(:,2),'r+'); 
grid on;               %%描绘出网格
hold on;               %%停留在图中,
mean = [7 8];
SIGMA = [1 0;0 2];
r2 = mvnrnd(mean,SIGMA,100);
plot(r2(:,1),r2(:,2),'b*')
grid on;
hold on;
mean = [4 6]
SIGMA = [1 0;0 4];
r3 = mvnrnd(mean,SIGMA,100);
plot(r3(:,1),r3(:,2),'gs')

        运行结果:



      3.三维三分类问题blog

mean = [2 3 4];   %%均值
SIGMA = [1 0 0;0 2 0;0 0 3]  %%协方差矩阵,假设各维度独立,故可设为对角阵
r = mvnrnd(mean,SIGMA,10);  %%最后一个参数表示生成该类10个样本点
plot3(r(:,1),r(:,2),r(:,3),'r+'); 
grid on;               %%描绘出网格
hold on;               %%停留在图中,
mean = [7 8 9];
SIGMA = [1 0 0;0 2 0;0 0 4];
r2 = mvnrnd(mean,SIGMA,10);
plot3(r2(:,1),r2(:,2),r2(:,3),'b*')
grid on;
hold on;
mean = [4 8 13]
SIGMA = [1 0 0;0 2 0;0 0 4];
r3 = mvnrnd(mean,SIGMA,10);
plot3(r3(:,1),r3(:,2),r3(:,3),'gs')

        结果:


       这里须要注意的是,绘制三维图像时,与二维平面图惟一的区别是plot函数,变成了plot3函数,参数的个数也增长了一维度。class

       若有问题,欢迎私信和QQ交流~grid