《Matlab二维绘图数据源分析及曲线族绘制张玉叶.pdf》由会员分享,可在线阅读,更多相关《Matlab二维绘图数据源分析及曲线族绘制张玉叶.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第13卷 第6期重庆科技学院学报(自然科学版)2011年12月收稿日期:2011-07-08基金项目:2009年咸阳师范学院教研基金项目(09XSYK205)作者简介:张玉叶(1979-),女,陕西礼泉人,硕士,咸阳师范学院物理与电子工程学院讲师,研究方向为电子设计与自动化。Matlab以其强大的数据处理和图形图像表现能力而得到了广泛的应用。但是,在数据的表现方面,绝大多数的应用者仅限于了解数学思路上的一对一(即点对点)绘图。所以,当需要处理的数据是一个庞大的二维矩阵或者三维数据矩阵时,很多应用者都感到棘手。本文从Matlab二维绘图的绘图机理出发,研究图形图像的形成及数据的重组和数据矩阵的特
2、性,从而实现对曲线族的绘制。1二维绘图数据源分析Matlab所提供的二维绘图功能,使得应用者从繁琐的绘图细节中脱离出来,而能够专心于最关心的本质。通过数据可视化的方法,应用者可以对自己的样本数据的分布、趋势特性有一个直观的了解2。将数据以图形形式来识别,不仅能掌握二维绘图的基本流程,而且能熟练使用Matlab中相应的绘图命令、函数来绘制二维图形,从而对复杂二维图形绘制奠定基础。1.1二维绘图的数据源分类(1)单矢量绘图plot(y)。当y是长度为n的向量时,则坐标系的纵坐标为y,横坐标为从1到n的向量。(2)单矢量绘图plot(y)。当y是一个mn的矩阵时,plot(y)函数将矩阵的每一列画一
3、条线,共n条曲线,各曲线自动用不同颜色表示。每条线的横坐标为向量1到m的向量。(3)双矢量绘图plot(x,y)。当参数x和y是向量时,x、y的长度必须相等。即点对点绘图。(4)双矢量绘图plot(x,y)。当plot(x,y)命令中的参数x和y是向量或矩阵时,分以下几种情况3:x是向量,y是矩阵时:x的长度与矩阵y的行数或列数必须相等,如果x的长度和y的每列元素个数相等,向量x与y的每列向量画一条曲线;如果x的长度与y的每行元素个数相等,则向量x与矩阵y的每行向量对应画一条曲线;如果y是方阵,x和y的行数和列数都相等,则向量x和矩阵y的每列向量画一条曲线。x是矩阵,y是向量:y的长度必须等于
4、x的行数或列数,绘制方法与前一种相似。x和y都是矩阵时:x和y大小必须相同,矩阵x的每列和矩阵y的每列画一条曲线。1.2针对数据源类型设计绘制方案(1)y=1 0 1 0 1 0%单矢量绘图,y是向量(2)y=1 2 3;4 5 6%单矢量绘图,y是矩阵(3)x=0 1 1 2 2 3 3 4 4y=1 1 0 0 1 1 0 0 1%双矢量绘图(4)x=0:3;y1=x;2x;x=0:3;y2=x;2x;(5)x=1:4;2:5;3:6;y=1111;2222;3333;%矩阵对矩阵绘图1.3程序设计 subplot(231)Matlab 二维绘图数据源分析及曲线族绘制张 玉 叶(咸阳师范学
5、院,咸阳712000)摘要:Matlab的数据可视化主要体现在数据曲线的绘制与分析。分析采用Matlab绘制二维图形的绘图机理,从而得到曲线族绘制的一般方法。关键词:Matlab;二维绘图;数据矩阵;曲线族中图分类号:TP391文献标识码:A文章编号:1673-1980(2011)06-0189-04189张玉叶:Matlab二维绘图数据源分析及曲线族绘制 y=1 0 1 0 1 0;plot(y)title(单矢量,y为向量)subplot(232)y=1 2 3;4 5 6;plot(y)title(单矢量,y为矩阵)subplot(233)x=0 1 1 2 2 3 3 4 4;y=1
6、1 0 0 1 1 0 0 1;plot(x,y)title(双矢量绘图,fontsize,10)subplot(234)x=0:3;y1=x;2*x;plot(x,y1)title(向量对矩阵绘图)x=0:3;y2=x;2*x;subplot(235)plot(x,y2)title(向量对矩阵绘图比较)subplot(236)x=1:4;2:5;3:6;y=1 1 1 1;2 2 2 2;3 3 3 3;plot(x,y)title(矩阵对矩阵绘图)绘制图形的结果如图1所示。图1所有二维绘图数据源示例类型效果从绘图指令以及绘图效果来看,二维绘图所包含的所有类型的数据源均被包括进去。并且反映了
7、绘图的机理。2二维绘图数据源分析对绘制复杂曲线的启示2.1曲线族的绘制曲线族的绘制有助于分析一类函数中,某参数对整个曲线形态的影响,对于研究曲线的形态与走向非常重要。并且在很多具体的应用领域,曲线族的绘制对于分析数据意义非常重要4-5。在实际的应用中,以研究弹簧特性为例说明曲线族绘制机理及绘制方法。施加在弹簧上的力与C1成比例,其中C1=0.5dt3-1.5ht*dt2+(1+ht2)dtht=h/t,dt=d/t,d为弹簧的挠度。当ht在13之间变化,增量为0.25,且dt在05之间变化时,画出C1随dt变化的曲线如图2所示,标注曲线,并令y的极限为8。clear ht=1:0.25:3;%
8、产生19向量 dt=linspace(0,5,100);%产生1100向量hht,ddt=meshgrid(ht,dt);C1=0.5*ddt.3-1.5*hht.*ddt.2+(1+hht.2).*ddt;plot(dt,C1)axis(0 5 0 8)程序分析:hht,ddt=meshgrid(ht,dt);这条语句用到了Matlab中格点化指令meshgrid,meshgrid指令就是在(x,y)平面来产生矩形网格的,格式为:单矢量,y为向量10.5005单矢量,y为矩阵双矢量绘图642011.5210.50024矩阵对矩阵绘图向量对矩阵绘图比较向量对矩阵绘图64200123642001
9、2332.521.5105190张玉叶:Matlab二维绘图数据源分析及曲线族绘制X,Y=meshgrid(x,y)其中,x,y为两个矢量,而X,Y为两个矩阵。而meshgrid指令的作用就是将由矢量x和y定义的域转换成一个由两个数组X和Y组成的标量空间。输出数组X的各值是由矢量x的各值在y轴上扩展成矢量y的大小1。同样,输出数组Y的各值是由矢量y的各值在x轴上扩展成矢量x的大小。本 程 序 提 供 了 一 维 行 向 量ht=11.251.51.75 2 2.25 2.5 2.75 3,将ht在dt的方向上扩展成dt大小,形成数据矩阵hht,是一个1009矩阵,其中,每一行都相等,都等于1
10、1.25 1.5 1.752 2.25 2.5 2.75 3。同理,程序提供了一维列向量dt,将dt在ht的方向上扩展成ht的大小,形成数组ddt,是一个1009数据矩阵,其中,每一列都相等,为05之间均匀分布的100个点。在x-y平面,数组hht和数组ddt形成了数据点阵,然后根据关系式:C1=0.5*ddt.3-1.5*hht.*ddt.2+(1+hht.2).*ddt,计算出相对应的C1,C1自然也是一个1009数据矩阵,最后,根据绘图指令 plot(dt,C1),dt是一个1100向量,C1是一个1009数据矩阵,向量对矩阵绘图,向量和矩阵的列长度相等,相应绘制9条曲线。2.2复杂曲线
11、族应用研究实际研究中所用到的许多曲线 是关于未知数的多参数,多变量函数,直接绘制 这些曲线 一般不是很容易。通过前面的研究分析,可通过Matlab二维绘图的矩阵绘图策略,合理设置自变量增量大小控制绘图矩阵的行数或者列数,实现复杂情况的曲线绘图,结合实例加以说明。2.2.1抛射曲线的数学模型研究无阻力抛射体的飞行问题,目标和射点在不同的高度上,想要计算出物体在不同的初速度和射角下飞行的时间和距离,示意图如图3所示。抛射曲线参数方程如下:xmax=v0cos0thy=v0sin0t12gt2=yh!#$根据参数方程设计初始速度v0=100m/s,取发射角取30个不同的值,构造矩阵X和Y,用两个矩阵
12、的列向量绘制抛射曲线族。alpha=pi*(1:30)/60;v0=100;g=9.8;T=2*v0*sin(alpha)/g;t=(0:16)*T/16;X=v0*t*diag(cos(alpha);Y=v0*t*diag(sin(alpha)-g*t.2/2;plot(X,Y,k)运行结果如图4所示。程序分析:绘制曲线族最简约的方式是构造两个矩阵X和Y,用plot(X,Y)绘图,根据要求,X和Y都是30个列向量构成的矩阵,他们的每列数据分别对应于不同发射角的抛射线的横坐标和纵坐标。所以,由30个发射角计算出对应的飞行时间,再由飞行时间计算出30个同维数的列向量描述飞行过程,形成矩阵t。最后
13、将角度不同的初始速度按列相乘得到矩阵t,便可以计算出X和Y。图2C1随dt变化的曲线如图图3无阻力抛射运动示意图v0a图4不同角度不同初速度的抛射轨迹yx600500不同发射角不同初始速度下抛射体发射高度40030020010000200不同发射角不同初始速度下抛射体落点4006008001 0001 200无阻力抛射体运动轨迹191微计算机应用,2009(1):11-12.2孙卫琴.精通Struts:基于MVC的JavaWeb设计与开发M.北京:电子工业出版社,2004.3曾宇胸,王非.基于Struts框架技术的WEB应用系统J.计算机应用与软件,2008(7):196-197.4吴兴惠,陈
14、明锐,赖文志.基于Struts的高校科研管理系统的设计与实现J.海南广播电视大学学报,2008(1):91-93.5李刚.Struts2权威指南基于WebWork核心的MVC开发M.北京:电子工业出版社,2007.Application of Struts Technique in Scientific Management SystemTANG Chun-lingHU Fang-xiaLI Hui-lingZHANG Yan(Chongqing Technology and Business Institute,Chongqing 400052)Abstract:This article f
15、irstly analyzes the MVC design pattern and the mechanism of Struts.According to thecharacteristics of scientific management system,Struts is used in this system and then a real Web application istaken as an example to show a detailed application of Struts.Key words:Struts;MVC;scientific management s
16、ystem;B/S张玉叶:Matlab二维绘图数据源分析及曲线族绘制3结语Matlab的图形可视化在各个应用领域已经引起了科研人员的关注,关于绘图的方法研究并没有引起重视,一般情况下,应用者只掌握了基本的绘图方法,给科研的开展及教学工作造成一定的困难。本文从绘图策略着手,经过探索和研究,形成了二维绘图曲线族绘制的方法,并能够给绘制复杂图形提供非常巧妙的思路。研究结果对于研究曲线的形态与走向非常重要。参考文献1曹弋.MATLAB教程及实训M.北京:机械工业出版社,2008:108.2王志涌.精通MATLAB6.5M.北京:北京航空航天大学出版社,2003:3.3飞思科技产品研发中心.MATLAB
17、7基础与提高M.北京:电子工业出版社,2005:174-175.4王家文,曹宇.MATLAB6.5图像图形处理M.北京:国防工业出版社,2004.5王曼珠,张喆民.MATLAB在天线方向图中的应用与研究J.电气电子教学学报,2004,26(4):On Data Sources Analysis of 2D Painting on Matlab andthe Painting of Curves FamilyZHANG Yu-ye(Xianyang Normal College,Xianyang 712000)Abstract:The data visualization of Matlab mainly embodies the painting and analysis of the data curves.Thispaper focuses on the mechanism of the data sources of 2D paintings.The method of the curves family painting isthus now available.Key words:MATLAB;2D painting;data matrix;curves family(上接第185页)192
限制150内