matlab生成多组多维高斯分布数据

之所以写这么一个函数,是因为在练习用matlab实现聚类分析,用matlab生成的高斯分布数据可以作为很好的数据。当然,直接load进鸢尾花数据集也可以拿来练手,到后边再对鸢尾花数据集进行分析。

代码如下:

function data = generate_data_GMM(dim, model_class, m, s, num)%   生成多组多维高斯分布数据%   dim为高斯分布的维数%   model_class为生成的数据组数%   m为高斯分布的期望值,大小为model_class*dim%   s为高斯分布的协方差阵,大小为dim*dim*model_class%   num为各组高斯分布的数据量,其大小为model_class*1%   返回值data为生成的数据,其大小为num*(dim+1)%   前dim列为高斯分布数据,第(dim+1)列为组的类别编号%   该函数用于生成多组高斯分布数据,可为聚类算法提供数据data = [];for i = 1 : model_classdata1 = ones(num(i), dim + 1);data1(:, (1 : dim)) = mvnrnd(m(i, :), s(:, :, i), num(i));for j = 1 : num(i)data1(j, dim + 1) = i;enddata = [data; data1];end
end

主函数调用:

model_class = 2;
dim = 3;
% 期望值
m = [0, 0, 0;2, 2, 2];
% 协方差阵
s(:, :, 1) = [0.2, 0, 0;0, 0.2, 0;0, 0, 0.2];
s(:, :, 2) = [0.5, 0, 0;0, 0.5, 0;0, 0, 0.5];
num = [10000, 5000];
data = generate_data_GMM(dim, model_class, m, s, num);% 提出每组数据
data1 = data((data(:,4) == 1), (1:3));
data2 = data((data(:,4) == 2), (1:3));% 绘图分析(以第二组数据为例)
figure(1)
plot(data2(:, 1), data2(:, 2), '.k');
axis equal;
figure(2)
plot(data2(:, 2), data2(:, 3), '.k');
axis equal;
figure(3)
plot(data2(:, 1), data2(:, 3), '.k');
axis equal;
figure(4)
histogram2(data2(:, 1), data2(:, 2), 30, 'FaceColor','flat')

绘图:

matlab生成多组多维高斯分布数据相关推荐

  1. python二维高斯分布生成_python 多维高斯分布数据生成方式

    我就废话不多说了,直接上代码吧! import numpy as np import matplotlib.pyplot as plt def gen_clusters(): mean1 = [0,0 ...

  2. 【FPGA仿真】Matlab生成二进制、十六进制的txt数据以及Vivado读取二进制、十六进制数据并将结果以txt格式保存

    Matlab 生成二进制.十六进制数据 在使用Vivado软件进行Verilog程序仿真时可能需要对模块输入仿真的数据,因此我们需要一个产生数据的方法(二进制或者十六进制的数据),Matlab软件是一 ...

  3. matlab生成行向量组,什么叫行向量组与列向量组? 什么是矩阵的维度?

    行向量组指的是矩阵每行构成一个向量,所有行构成的向量的整体称为一个行向量组 列向量组指的是矩阵每列构成一个向量,所有列构成的向量的整体称为一个列向量组 例如:  给你一个矩阵A A = 1  2  3 ...

  4. matlab生成二维服从高斯分布的数据

    matlab生成二维服从高斯分布的数据 2015-12-30 21:31 1263人阅读 评论(0) 收藏 举报  分类: matlab(8)  由于实验需要,需要生成两类模式的数据,同时这两类数据要 ...

  5. Matlab中矩阵编号方式以及一维二维三维数据间的相互转换

    Matlab中矩阵编号方式以及一维二维三维数据间的相互转换 文章目录 Matlab中矩阵编号方式以及一维二维三维数据间的相互转换 一.问题的提出 二.一维数据转为二维和三维 三.三维数据转为一维和二维 ...

  6. MATLAB生成三维体数据

    MATLAB生成三维体数据 一.三维体数据的生成 二.多二维矩阵生成三维体数据 三.多二维图像生成三维体数据 四.DICOM序列生成三维体数据 五.其他 by HPC_ZY 之前写了医学影像三维重建的 ...

  7. matlab生成满足二维高斯(正…

    原文地址:matlab生成满足二维高斯(正态)分布的随机数/作图程序作者:乐韵悠杨 产生满足二维高斯(正态)分布的随机数: mu=[0,2];%数学期望 sigma=[1 0;0,4];%协方差矩阵 ...

  8. Matlab绘图(三)散点图—四维数据、五维数据、六维数据、七维数据散点图可视化绘制

    Matlab绘图(三)散点图-四维数据.五维数据.六维数据.七维数据可视化分析 一.前言 二.散点图特征分析 (1)原理分析: (2)方案分析: 四维数据进行可视化方案 五维数据进行可视化方案 六维数 ...

  9. 可视化:python绘制多组多维数据雷达图

    超过3维的数据用雷达图可以十分直观地展示.本文实践过程中以灰度共生矩阵的4项常用指标为例. python绘制多组多维数据雷达图 所使用的数据如下所示:每一行是一个样本,每个样本有4维特征(列). 封装 ...

最新文章

  1. (转)SpringBoot系列—Redis使用
  2. 转:几款主流 NoSql 数据库的对比
  3. Windows10家庭版安装Hyper-V虚拟机
  4. 动画狗奔跑gif图片_常用的GIF制作工具,自媒体人常用,你还不会做表情包
  5. JavaScript from C#(入门篇)
  6. 神舟战神换cpu教程_神舟将十代i5称为“神U出世”?聊聊到底有哪些优势
  7. 动作类游戏状态机设计
  8. 卡巴斯基离线病毒库升级办法
  9. 数据清洗 Chapter01 | 数据清洗概况
  10. 免费站群系统cm-SEO需要多长时间?
  11. 用友U8安装客户端时提示已经安装过智能客户端
  12. Sue Shallow
  13. 独立思考者的思考模型----智商160以上的人都应该学会的(摘自杜牛牛博客)
  14. 给ssh服务添加谷歌双重认证
  15. 【学懂数据结构】二叉树之舞之二叉树
  16. 【数据清洗】数据清洗流程及经验
  17. 使用vi编辑器创建文本文件
  18. github软件---百度网盘加速
  19. Xswap:Web 3.0时代跨链聚合闪兑赛道的黑马
  20. 一次性针头滤器-市场现状及未来发展趋势

热门文章

  1. IDEA自定义快捷指令,快捷生成代码、注释
  2. leetcode 567. Permutation in String 字符串的排列 滑动窗口法
  3. django自带的分页功能
  4. 发送快递:配置静态路由
  5. Lock、ReentrantLock、ReentrantReadWriteLock原理及应用深入解析
  6. LeetCode简单题之二进制矩阵中的特殊位置
  7. LeetCode简单题之区域和检索 - 数组不可变
  8. LeetCode简单题之数组拆分 I
  9. Python:处理一些格式规范的文字
  10. 【CV】吴恩达机器学习课程笔记第17章