matlab中画三维图形 - Dec-Fth

faith0217 2021-12-28 原文


matlab中画三维图形


这里主要讲述两个方法用matlab画三维图形:

1.mesh函数

先看一个简单的例子:

1 x = 1:1:3;
2 y = 1:1:4;
3 [X, Y] = meshgrid(x, y);
4 Z = zeros(4,3);
5 Z = [   1 2 3;
6         2 3 4;
7         3 4 5;
8         4 5 6]
9 mesh(X, Y, Z);

这是个简单的用mesh函数画的三维图,结果是:

这里需要注意一点:

矩阵Z的行列,Z的行是Y坐标系的值(meshgrid的右边位置的数y),Z的列是X坐标系的值(meshgrid的左边位置的数x)

那下面讲下我怎么将自己的数据导入到Z矩阵中:

1.简单的方法是直接将数据输入到矩阵Z中,注意行列:

  1 x = 1:1:22;
  2 y = 1:1:101;
  3 [X,Y] = meshgrid(x,y);
  4 Z = zeros(101,22);
  5 Z = [
  6 1 1 1 1 2 2 3 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
  7 1 1 1 1 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 ;
  8 1 1 1 1 1 2 2 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 ;
  9 1 1 1 1 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 ;
 10 1 1 1 1 2 2 3 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 11 1 1 1 1 2 2 3 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 12 1 1 1 1 2 2 2 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 13 1 1 1 1 1 1 1 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 14 1 1 1 1 1 1 2 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 15 1 1 1 1 2 2 2 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 16 1 1 1 2 2 2 3 4 4 4 4 4 5 4 4 4 4 4 4 4 4 4 ;
 17 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 18 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 19 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 20 1 1 1 1 1 1 1 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 ;
 21 1 1 1 1 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 22 1 1 1 1 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 23 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 24 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 25 4 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 26 4 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 27 1 1 1 1 1 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 28 1 1 1 1 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 29 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 ;
 30 1 1 1 2 2 2 3 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 31 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 32 4 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 33 4 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 34 1 1 1 1 1 1 2 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 ;
 35 1 1 1 1 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 36 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 37 1 1 1 2 2 2 3 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 38 1 1 1 2 2 2 3 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 39 1 1 1 2 2 2 3 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 40 4 1 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 41 4 1 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 42 1 1 1 1 2 2 3 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 43 1 1 1 1 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 44 1 1 1 1 2 2 3 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 45 1 1 1 1 2 2 3 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 46 1 1 1 1 2 2 3 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 47 4 1 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 48 4 1 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 49 1 1 1 1 2 2 3 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 50 1 1 1 1 2 2 3 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 51 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 52 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 53 1 1 1 1 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 54 4 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 55 4 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 56 1 1 1 1 2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 57 1 1 1 1 2 2 3 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 58 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 ;
 59 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 ;
 60 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 61 4 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 62 4 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 63 1 1 1 1 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 64 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 65 1 1 1 1 2 2 3 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 66 1 1 1 1 2 2 3 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 67 1 1 1 1 2 2 3 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 68 4 1 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 69 4 1 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 70 1 1 1 1 2 2 3 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 71 1 1 1 1 2 2 3 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 72 1 1 1 2 2 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 73 1 1 1 2 2 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 74 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 75 4 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 76 4 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 77 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 78 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 79 1 1 1 1 2 2 3 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 80 1 1 1 1 2 2 2 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 81 1 1 1 1 2 2 3 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 82 4 1 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 83 4 1 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 84 1 1 1 1 2 2 2 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 85 1 1 1 1 2 2 2 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 86 1 1 1 2 2 3 3 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 ;
 87 1 1 1 2 2 3 3 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 ;
 88 4 1 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 89 4 1 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 90 4 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 ;
 91 1 1 1 2 2 3 3 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 ;
 92 1 1 1 2 2 3 3 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 ;
 93 1 1 1 1 2 2 3 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 94 1 1 1 1 2 2 3 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 95 4 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
 96 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ;
 97 4 1 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 4 4 4 4 4 ;
 98 1 1 1 1 2 2 3 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
 99 1 1 1 1 2 2 3 4 4 4 4 4 4 5 4 4 4 4 4 4 4 4 ;
100 1 1 1 2 2 2 3 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 ;
101 1 1 2 2 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 ;
102 1 1 2 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
103 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ;
104 1 1 2 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 ;
105 1 1 2 2 2 3 3 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 ;
106 1 1 1 2 2 3 3 4 4 4 4 4 4 4 4 4 4 4 4 5 4 4 ;
107     ];
108 mesh(X, Y, Z);
109 xlabel(\'cluster\');
110 ylabel(\'mrf node\');
111 zlabel(\'max label num\');

结果是:

方法2用plot3画:

首先用c++写段代码,注意数据存储的方式:

 1     fp = fopen("D://cluster_num_max.text", "w");
 2     if(fp)
 3     {
 4         for (GLong v = 0; v < mrf.size(); v++)
 5         {
 6             for (GLong k = 0; k < canopy; k++)
 7             {
 8                 fprintf(fp, "%ld ", v + 1 );
 9             }
10         }
11         fprintf(fp, "\n");
12         for (GLong v = 0; v < mrf.size(); v++)
13         {
14             for (GLong k = 0; k < canopy; k++)
15             {
16                 fprintf(fp, "%ld ", k + 1 );
17             }
18         }
19         fprintf(fp, "\n");
20         for (GLong v = 0; v < mrf.size(); v++)
21         {
22             for (GLong k = 0; k < canopy; k++)
23             {
24                 GLong lCanopyTemp = mrf[v].stClusterNum_min_max[k].lLabel_pruning_cluster_num_max;
25                 fprintf(fp, "%ld ", lCanopyTemp );
26             }
27             //fprintf(fp, ";\n");
28         }
29     }
30     //fprintf(fp, "\n");
31     fclose(fp);
32     fp = NULL;

得到cluster_num_max.text后,matlab就可以导入数据了。

1 load(\'D:\\cluster_num_max.text\');
2 y = cluster_num_max(1,:);
3 x = cluster_num_max(2,:);
4 z = cluster_num_max(3,:);
5 plot3(x,y,z);
6 xlabel(\'cluster\');
7 ylabel(\'mrf node\');
8 zlabel(\'max label num\')

结果是:

补充mesh函数:

 1 [x,y]=meshgrid(-8:0.5:8);
 2 z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);
 3 subplot(2,2,1);
 4 mesh(x,y,z);
 5 title(\'mesh(x,y,z)\')
 6 subplot(2,2,2);
 7 meshc(x,y,z);
 8 title(\'meshc(x,y,z)\')
 9 subplot(2,2,3);
10 meshz(x,y,z)
11 title(\'meshz(x,y,z)\')
12 subplot(2,2,4);
13 surf(x,y,z);
14 title(\'surf(x,y,z)\')

 最后说一下plot3和mesh的图怎么不一样

 

左图是plot3,右图是mesh。可以看到当(1,4,1)数据紧接着是(2,1,1),它们相连了。

发表于
2014-11-26 15:46 
Dec-Fth 
阅读(9340
评论(0
编辑 
收藏 
举报

 

版权声明:本文为faith0217原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/faith0217/p/4123458.html

matlab中画三维图形 - Dec-Fth的更多相关文章

  1. java中abstract怎么使用 – 菜鸟Z

    java中abstract怎么使用 abstract(抽象)修饰符,可以修饰类和方法 1,abstract修饰 […]...

  2. 亚马逊——不一样的电商公司 – anf

    亚马逊——不一样的电商公司 其一: 电商公司就是电子商务公司。电子商务通俗的说就是利用电子工具进行各种商务活动 […]...

  3. mysql命令行备份方法 – 鑫春

    mysql命令行备份方法 一、mysql备份 1、备份命令 格式:mysqldump -h主机IP -P端口 […]...

  4. The First Week luckyzpp – Lucklyzpp

      一 ,LINUX系列有很多版本,只是我们很少去了解到更多,我们熟知红帽CentOS,Ubuntu,Debi […]...

  5. 前端性能优化方法总结 – 清风软件测试

    前端性能优化方法总结 2018-05-02 01:17  清风软件测试  阅读(7743)  评论(0)  编 […]...

  6. 大数据和AI的未来畅想 – lj-attitudes

    大数据和AI的未来畅想 《今日简史》   1.   10大趋势决定了未来10年的生存发展。 库兹韦尔提出“吓尿 […]...

  7. (zhuan)图解Android – Android GUI 系统 (5) – Android的Event Input System – 笨笨居士

    (zhuan)图解Android – Android GUI 系统 (5) – And […]...

  8. 代理IP – GuoZeping

    代理IP 代理IP 一、获取代理IP 二、使用代理IP   1.requests   2. selenium […]...

随机推荐

  1. PyCharm远程连接服务器简明教程

    PyCharm远程连接服务器简明教程 转自本人知乎(https://zhuanlan.zhihu.com/p/ […]...

  2. java并发编程—–ThreadPoolExecutor

    java并发编程—–ThreadPoolExecutor 一、核心构造方法讲解 参数名 […]...

  3. 服务端渲染(SSR)和客户端渲染(CSR)的区别

     一:SSR:服务端渲染(Server side render) 将组件或页面通过服务器生成html字符串,再 […]...

  4. java程序员技术知识体系 转载

    1.基础:这一部分你需要学习精通java基础知识,如jvm原理,core java。熟悉jvm架构体系,运行原 […]...

  5. 【floyd】【bitset】洛谷 P1841 [JSOI2007]重要的城市 题解

          bitset玄学完美优化复杂度?   题目描述 参加jsoi冬令营的同学最近发现,由于南航校内修路 […]...

  6. [SinGuLaRiTy] NOIP2017 提高组

    【SinGuLaRiTy-1048】 Copyright (c) SinGuLaRiTy 2018. All […]...

  7. 代码传奇 | 身价10亿的程序员 雷军当年也为他打工——WPS之父 求伯君

    他的前半生,值得我们每一个人深思。 在普通人眼里,他寂寂无名,只有年岁稍长的文化人,才听说过他传奇般的存在。 […]...

  8. NodeJs之服务搭建与数据库连接

    NodeJs之服务搭建与数据库连接 一,介绍与需求分析  1.1,介绍 Node.js 是一个基于 Chrom […]...

展开目录

目录导航