matlab三维可视化,MATLAB中三维数据可视化及应用_weixin_39913472的博客-程序员秘密

技术标签: matlab三维可视化  

Value Engineering ———————————————————————作者简介:张晓利(1976-),女,陕西临潼人,硕士研究生,讲师,研究方向为

计算机应用。

0引言

MATLAB 在数据可视化方面提供了强大的功能,它可以把数据用二维、

三维乃至四维图形表现出来。通过对图形的线型、立面、色彩、渲染、光线以及视角的处理,将计算数据的特性表现得淋漓尽致。

在实际的教学过程中,学生对数据可视化很感兴趣,二维绘图指令较容易掌握,但是三维表现图的内容比较多,变现形式灵活,它有三维曲线图、三维曲面图和三维网面图。尤其对曲面和网面绘图指令中的数据理解不清。因此,本文详细分析三维面图指令中各种形式数据的含义。

1数据的三维面图生成过程

三维曲面绘图的数据准备比较复杂,可分四个步骤:①产生自

变量采样向量;

②产生自变量格点矩阵;③计算格点矩阵上的函数值矩阵;④在平面网格基础上绘制三维面图。在数学上,函数z=f (x ,y )的图像是三维空间的曲面,在MATLAB 中,总是假设函数z=f (x ,y )定义在一个矩形的区域D=[x1,xn]×[y1,ym]上。为了生成x-y 矩形区域上的顶点坐标值采用meshgrid 命令。得到了网格点上的函数值矩阵后,可以利用MATLAB 中函数mesh 或surf 来生成函数的网面图或曲面图。

2数据的三维网面图

函数mesh 是MATLAB 三维网面绘图指令,绘制出来的图形线条有颜色,空档处是白色的,它有六种调用方式。

①mesh (X ,Y ,Z ,C ):参数X 、Y 、Z 都为矩阵值,X (mXn )矩阵的

每一个行向量都是相同的,

Y (mXn )矩阵的每一个列向量都是相同的,Z (mXn )矩阵是格点上的值。参数C 表示网格曲面的颜色分布情况;②mesh (X ,Y ,Z ):参数X 、Y 、Z 都为矩阵值,X (mXn )矩阵的每一个行向量都是相同的,Y (mXn )矩阵的每一个列向量都是相同的,Z (mXn )矩阵是格点上的值。网格曲面的颜色分布与Z 方向上的高度值成正比;③mesh (x ,y ,Z ,C ):参数x 和y 为长度分别是n 和m 向

量值,而参数Z 是维数为mXn 的矩阵,

参数C 表示网格曲面的颜色分布情况;④mesh (x ,y ,Z ):参数x 和y 为长度分别是n 和m 向量值,而参数Z 是维数为mXn 的矩阵,网格曲面的颜色分布与Z 方向上的高度值成正比。

对于③和④这两种格式,相当于执行了下面两条命令:[X ,Y]=meshgrid (x ,y )和mesh[X ,Y ,Z ,C]。⑤mesh (Z ,C ):参数Z 是维数为mXn 的矩阵,C 表示网格曲面的颜色分布情况;⑥mesh (Z ):参数Z 是维数为mXn 的矩阵,网格曲面的颜色分布与Z 方向上高度值成正比。

对于⑤和⑥,则绘图时栅格数据点的取法是x=1:n ;y=1:m 。其实,这种格式的命令相当于执行了下面5条命令:[m ,n]=size (Z );x=1:n ;y=1:m ;[X ,Y]=meshgrid (x ,y );mesh[X ,Y ,Z ,C]。

3数据的三维曲面图

函数surf 是MATLAB 三维曲面绘图指令,绘制出来的图形线

条有黑色,空档处是有颜色的,它有六种调用方式。

①surf (X ,Y ,Z ,C ):参数X 、Y 、Z 都为矩阵值,参数C 表示网格曲面的颜色分布情况;②surf (X ,Y ,Z ):参数X 、Y 、Z 都为矩阵值,网

格曲面的颜色分布与Z 方向上的高度值成正比;③surf

(x ,y ,Z ,C ):参数x 和y 为长度分别是n 和m 向量值,而参数Z 是维数为mXn 的矩阵,参数C 表示网格曲面的颜色分布情况;④surf (x ,y ,Z ):参数x 和y 为长度分别是n 和m 向量值,而参数Z 是维数为mXn 的矩阵,网格曲面的颜色分布与Z 方向上的高度值成正比;⑤surf (Z ,C ):参数Z 是维数为mXn 的矩阵,参数C 表示网格曲面的颜色分布情况;⑥surf (Z ):参数Z 是维数为mXn 的矩阵,网格曲面的颜色分布与Z 方向上的高度值成正比。

4实例在x ,y ∈[0,2π]区间里,绘制z=sin (y )*cos (x )的三维网面和曲面图。

4.1网面图(图1)x=[0:0.15:2*pi];y=[0:0.15:2*pi];[X ,Y]=meshgrid (x ,y );Z=sin (Y ).*cos (X );mesh (X ,Y ,Z )。

4.2曲面图(图2)x=[0:0.15:2*pi];y=[0:0.15:2*pi];Z=sin (y')*cos (x );surf (x ,y ,Z )。

在网面绘图指令中,数据准备是按步骤进行的,Z 的计算采用数组运算,而在曲面绘图中,没有按照步骤进行,这时Z 的计算采用矩阵运算得到。通过对比,对三维面图的后四种不按照正常步骤准备三维数据理解的更加透彻。

5结束语

通过对常用的三维绘图指令中的数据的详细分析,给学习MATLAB 图形表现功能的有关人员提供一个有力的帮助。使得Matlab 的图形功能可实际应用于高等数学、线性代数、计算方法等课程的教学过程中,使抽象的教学内容变得可视化,增加了课程内容的生动性与表现力。

参考文献:

[1]张志涌.MATLAB R2008a.北京:北京航空航天大学出版社,2009,(

e7918177378215c7ede731f60c32c755.png

8):

182-222.

[2]王薇,杨丽萍.Matlab 在数据可视化中的应用.长春大学学报,2008,18,(5):52-54.MATLAB 中三维数据可视化及应用

Three-dimensional Data Visualization and Application in MATLAB

张晓利Zhang Xiaoli

(西安邮电学院计算机学院,西安710121)

(School of Computer Science &Technology ,Xi'an University of Posts &Telecommunications ,Xi'an 710121,China )

摘要:MATLAB 在三维数据可视化中的应用很灵活,数据较难理解。在介绍MATLAB 的三维绘图指令的基础上,详细分析指令中的绘图数据

含义,并给出相应的实例,目的在于对形式多样的数据理解提供有力帮助。

Abstract:Application of MATLAB in three-dimensional data visualization is very flexible,data is more difficult to understand.In the introduction of three-dimensional graphics commands,the meanings of mapping data are analyzed in detail and applied.Aims at understanding of various forms of data are to provide a powerful help.

关键词:MATLAB ;数据可视化;mesh Key words:MATLAB ;data visualization ;mesh

中图分类号:TP312

文献标识码:A

文章编号:1006-4311(2011)24-0143-01

·143·

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39913472/article/details/116370235

智能推荐

常见邮件服务器软件_aozhuolve8386的博客-程序员秘密

常见邮件服务器软件1.微软 ExchangeServer[3]​2.TurboMail3.Coremail4.U-Mail5.lifecube网络宝邮件服务器6.MDaemonServer7.WinWebMail8.IceWarp / Merak Mail Server9.Lotus Domino/Notes10.Postfix / Sendmai...

Tablayout+viewpager+Fragment的fragment页面数据不显示_简单的菜鸟的博客-程序员秘密

  开发中经常使用Tablayout+ViewPager与Frament 联动,之前fragment 页面创建比较少,没有出现什么问题,但是当创建frament页面页面比较多的时候,fragment 页面的数据会有不显示,想了各种办法没有解决,网上中找到解决办法。写个问个记录,也供大家参考。    将ViewPager的适配器给为FragmentStatePagerAdapter 是配置器,之...

在加密解密时遇到这个问题:java.security.InvalidKeyException:illegal Key Size_slgshishen的博客-程序员秘密

在加密解密时遇到这个问题:java.security.InvalidKeyException:illegal Key Size这是因为用到了jdk sercurity, 而jdk sercurity 使用的jar包 $JAVA_HOME/jre/lib/security/local_policy.jar 和 $JAVA_HOME/jre/lib/security/US_export_pol...

利用MailUtils发送邮件_普通网友的博客-程序员秘密

MailUtils底层使用了javamail,  所以必须得到jar包为mail.jar 、activation.jar百度云链接:链接:https://pan.baidu.com/s/1gGWAgDEaBwB8JDwUeiArXA 密码:1juk用途 发送邮件一、准备工作1)首先最好使用常用的邮箱,并且在邮箱设置里面开启SMTP服务a)并且需要关闭登陆校验(也就是说关闭保护)b)或者登陆授权保护...

[深度学习]动手学深度学习笔记-7_田纳尔多的博客-程序员秘密

Task4——机器翻译及相关技术7.1 机器翻译机器翻译是指将一段文本从一种语言自动翻译到另一种语言。因为一段文本序列在不同语言中的长度不一定相同,所以我们使用机器翻译为例来介绍编码器—解码器和注意力机制的应用。7.1.1 读取和预处理数据我们先定义一些特殊符号。其中“<pad>”(padding)符号用来添加在较短序列后,直到每个序列等长,而“<bos>”和“&...

手把手教你把Vim改装成一个IDE编程环境 (图文)_Shen_JC的博客-程序员秘密

手把手教你把Vim改装成一个IDE编程环境(图文)<br />By:吴垠Date:2007-09-07Version:0.5Email:lazy.fox.wu#gmail.comHomepage:<br />http://blog.csdn.net/wooin<br />Copyright:该文章版权由吴垠和他可爱的老婆小包子所有。可在非商业目的下任意传播和复制。对于商业目的下对本文的任何行为需经作者同意。<br />联系方式:lazy.fox.wu#gmail.com1<br />写在前面Linu

随便推点

android 百度地图选择地址并再通过坐标获取地址_百度地图 bdlocation获取geocoder_陈英有的博客-程序员秘密

应用有考勤功能,但测试人员又总是在公司,测试不了考勤变化,于是为测试开发一个界面可以在测试时选择地址相当于定位。查了一下百度API并未查到,但试了一下,结果在 MapStatusChangeListener的回调找到MapStatus,其中包含了拖动地图时的中间的位置,就可以在地图选择地址了,从而MapStatus里得到经纬度。再通过经纬度得到具体的地址详情(注:要签名打包才能得到地址)。

【Intel(R)_Media_SDK】官方文档翻译摘要_id3d10multithread::setmultithreadprotected_weilin.jiang的博客-程序员秘密

【前言】Intel media SDK调用系统底层库完成硬编解码,处理视频,库分用器如下有很多硬解码库,不同的GPU可以使用不同的库,有些库也有可能为了跨硬件,就会像上图那样有个分层器,根据硬件类型选择不同的库进行硬解码,相关库有:DXVA Microsoft DirectXCUDA 英伟达推出CUVID 英伟达推出等

UML类关系(依赖,关联,聚合,组合,泛化,实现)_weixin_33670786的博客-程序员秘密

转自https://blog.csdn.net/k346k346/article/details/59582926在学习面向对象设计时,类关系涉及依赖、关联、聚合、组合和泛化这五种关系,耦合度依次递增。关于耦合度,可以简单地理解为当一个类发生变更时,对其他类造成的影响程度,影响越小则耦合度越弱,影响越大耦合度越强。下面根据个人理解,尝试讲解这五种类关系。1.依赖(Dependen...

Yet another implementation of a lock-free circular array queue_OpenHero的博客-程序员秘密

Yet another implementation of a lock-free circular array queueBy Faustino Frechilla, 27 Apr 2011   4.94 (35 votes) Download code_submitted.zip - 20.95 KB1. IntroductionImproving applications with high

Python日常笔记(39) - 路由(route)增删改查_gitee 删除路由地址_一枚小小菜鸟的博客-程序员秘密

根据上一章节使用了路由映射到具体执行函数,今天进一步优化以及增加添加与修改代码:import osimport refrom pymysql import *# 导入url编码模块import urllib.parse# 添加日志模块import logging# 测试使用# print(os.path.abspath(__file__)) # 显示当前文件的地址# pr...

df -h卡死及umount报错device is busy_umount df -h无反应_a382486075的博客-程序员秘密

linux环境中查看挂载点有三个方法1.df -h 输出直观,缺点是如果存在不可达挂载点时会直接挂死。2. mount -l 即便存在不可达挂载点也不会挂死,缺点是输出不直观,且没有挂载点的空间信息3.直接查看/etc/mtab, 直观可信,虽然没有挂载点的空间信息,但是可以绕过umount命令的检查直接删除挂载点综上,当df -h命令产生卡死时,使用mount -

推荐文章

热门文章

相关标签