本篇文章主要讲解在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