目的:将matlab二维数组通过plot3形象的三维图表达


成果图如上图所示,黑色的线,红色的线和绿色的线分别代表数据集中的三个标签类别,横轴代表样本总数90个(图中没有截全,只能看到40左右),纵轴代表每个样本的长度256个点。

主要实现函数(plot3)

步骤分为:

1.绘出plot3的图形

2.根据分类标签改变图形的颜色

步骤一:绘出plot3的图形

不熟悉plot3函数的朋友们可以先使用帮助help或doc plot3 了解的matlab自带例程,然而会发现例程中直接使用函数cos(),而没有用一个现成的数组。

因而我们需要自己写个XY网格,在将我们的数组换成对应的Z。

为方便大家理解代码,增加了变量bios=n,用于移除每个样本前n个数值。
数据样本设置:data_all=90 × 256 double

bios=10;     %移除数据样本中前bios个数据,不需要移除数据设置为0就行
[X,Y] = meshgrid(bios:size(data_all,2),1:size(data_all,1));   %建立XY网格
Z = data_all(:,bios:end);
plot3(X,Y,Z,'color',[0.5 0.5 0.5])   %绘制plot3图,设置全部颜色为灰

运行结果如下

步骤二 .根据分类标签改变图形的颜色

这里我通过多次调用plot3实现了改变局部颜色的重绘覆盖,然而这个方法虽然实现了功能,但显然可以看出其效率不高,希望各路大神指点。

接上面的代码继续:
变量说明:label为我90个数据样本的标签集,大小为:90 × 1 double,数据只为1,0或者-1

 for i=1:numTrials%遍历每个样本hold onif(label(i) == -1)%%标签如果为-1 Z = data_all(i,bios:end);plot3(X(i,:),Y(i,:),Z,'k')   %%当前样本颜色重绘为黑色else if(label(i) == 1 ) %%标签如果为1      Z = data_all(i,bios:end);plot3(X(i,:),Y(i,:),Z,'r') %%当前样本颜色重绘为红色else if(label(i) == 0)%%标签如果为0Z = data_all(i,bios:end);plot3(X(i,:),Y(i,:),Z,'color',[0.4 0.7 0.4])%%当前样本颜色重绘为浅绿色endendendend

运行结果如下:

不足:
可以看到这个方法只改变了纵向(样本数据)线条的颜色,而横向(样本个数)线条的颜色并未改变。某菜在这里抛砖引玉,希望诸位大佬能够提出更好的解决方法~

Matlab三维绘图plot3按二维数组分类区分颜色相关推荐

  1. matlab中for循环设置二维数组,MATLAB中定义赋值一个二维数组

    MATLAB中定义赋值一个二维数组 答: 分号:; 因特网能提供的最基本服务 答:E-mail, WWW, FTP 劳动合同中,用人单位给予劳动者低于当地工资最低水平的违反了()合法原则 答:内容合法 ...

  2. Matlab转Python问题之二维数组单索引寻值

    在Matlab中,对于二维数组来说,是可以用一个索引来找单个元素的,但是python中,如果只写一个索引,意味着指的是一整行的数值. A=[1,2,3;4,5,6;7,8,9] A =1 2 34 5 ...

  3. matlab二维数组排序函数,Matlab 用sort函数排序 二维数组

    在Matlab中排序某个向量(一维)时,可以使用sort(A),其中A为待排序的向量,如果仅是用来排序A,那么直接使用sort(A)即可, 如果排序后还需要保留原来的索引可以用返回值,即[B,ind] ...

  4. matlab用已知二维数组做plot_matlab数组及画图操作大全.ppt

    matlab数组及画图操作大全 第11周 Matlab 一.二维数组 二.二维数组与绘图 1.二维数组的输入方法 10.与二维数组相关的函数 练习 二.二维数组与绘图 例:利用二维数组在同一坐标轴中同 ...

  5. matlab建成二维数组,matlab绘制二维数组

    hist 累计图 rose 极座标累计图 stairs 阶梯图 stem 针状图 fill 实心图 feather 羽毛图 compass 罗盘图 quiver 向量场图 Matlab 如何画出一个二 ...

  6. MATLAB二维数组扩充为三维数组-repmat函数

    在项目仿真中遇到了这个问题:三维数组中每一列减去相同的二维数组,该如何操作? 必须采用以下表达式 Rx1TimeData1= Rx1TimeData0 - repmat(mean(Rx1TimeDat ...

  7. Python 三维数组转化为二维数组 和MATLAB的reshape函数结果一致

    最近在把Matlab的toolbox转到Python语言,涉及到了很多矩阵运算,经常会用到Matlab中的reshape函数,但是Python和它reshape的结果总不一致,导致我最后Python画 ...

  8. 二维堆叠 matlab,matlab二维数组与三维数组叠加问题

    本帖最后由 xiaohuangzz 于 2012-10-16 21:14 编辑 有任意一个二维数组如 A=[3 4 5 4; 3 4 5 3; 2 3 4 6] 与任意一个三维数组 B(:,:,1)= ...

  9. 二维数组离散程度matlab,(十八)数据分析中的一些概念

    (十八)数据分析中的一些概念 HIKAI 29 SEP 2017 0 Comments 矢量.向量.标量 矢量和向量是一个东西,只是在不同领域里面用到的不同称呼.矢量常常用在物理学中,向量在数学.几何 ...

  10. 一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式

     打印数组中的每个元素,打印每个元素的地址: #include <stdio.h> #include <stdlib.h> void main(void) { int a[ ...

最新文章

  1. 网络工程师_想要记录下来的一些题_1
  2. 打包、压缩、文件查找、通配符
  3. 选定元素slice()
  4. gui - tkinter 开发
  5. Java操作HDFS文件系统
  6. jQuery Validate 提交表单验证失败扩展方法
  7. python 编译 pyc
  8. php微信jsapi支付小结,ThinkPHP接入微信支付 - JSAPI支付
  9. 零基础如何考过二级建造师?
  10. android怎么截取接口返回html代码中的内容_某神秘公司 RESTful、共用接口、前后端分离、接口约定的实践...
  11. Excel 2016 对数据做线性回归分析步骤
  12. Windows 7安装超级终端连接COM口设备
  13. 【webrtc】基于libyuv的转换
  14. 眼睛干涩胀痛:得了干眼症该怎么办?
  15. Scrapy学习记录
  16. 逻辑表达式 -- 对蕴含的理解(举例更清晰、明白哦)
  17. 出现身份验证错误 要求的函数不受支持(可能是由于CredSSP加密数据库修正) Windows Server 服务器远程连接错误
  18. git撤销已经提交push到master或者已经合并到master的mr
  19. 求是潮android最新版,是谁在暗中观察
  20. 如何从无到有设计一款字体

热门文章

  1. c4d流体插件_C4D流体模拟插件 NextLimit RealFlow 2.6.5.0095 Win已注册版
  2. creo外观库_Proe/Creo外观着色与贴图
  3. 机器人运动学轨迹跟踪控制(Matlab实现)
  4. Java常量池原理以及垃圾回收
  5. yolov3模型训练——使用yolov3训练自己的模型
  6. 神兵利器Dagger2一站式全解(详细总结)
  7. 【干货分享】花坊类字体设计思路
  8. 晓莲说-何不原创:如何通过jad把class批量反编译成java文件
  9. 『动态规划』矩阵连乘
  10. R实战 Nomogram(诺莫图列线图)及其Calibration校准曲线绘制