matlab第六讲

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

此外,还有带等高线的三维网格曲面函数meshc和 带底座的三维网格曲面函数meshz。 其用法与mesh类似,不同的是meshc还在xy平面上绘 制曲面在z轴方向的等高线,meshz还在xy平面上绘制曲 面的底座。 例 在xy平面内选择区域[-8,8];[-8,8],绘制4种三维曲面图。
Z
sin x 2 y 2 x2 y2
[x,y,z]=sphere(20); colormap(copper); subplot(1,3,1); surf(x,y,z); axis equal subplot(1,3,2); surf(x,y,z);shading flat; axis equal subplot(1,3,3); surf(x,y,z);shading interp; axis equal
色彩图 色彩图(colormap)是MATLAB系统引入的概念。在MATLAB 中,每个图形窗口只能有一个色图。色图是m*3 的数值矩阵, 它的每一行是RGB三元组。色图矩阵可以人为地生成,也可 以调用MATLAB提供的函数来定义色图矩阵。 详细可查看 help colormap
重点掌握
abs grid on xlabel ylabel title plot axis gtext legend hold on hold off subplot plot3 meshgrig mesh surf
注意:刚才的例子中出现这样几个函数 abs(x) %求向量x各个元素的绝对值 grid on %画坐标格 xlabel %给x轴注释,用法见例题 ylabel %给y轴注释,用法见例题 title %给整个图注释,用法见例题 plot,目前我们已经学习了它的两种用法 1.plot(x,y)%以向量x中的元素为横坐标,y中对应的元素为纵 坐标画图,线性默认为蓝色的线 2.plot(x,y,’r*’)%第三个输入参数表示线型,用单引号引起来,r 表示红色,*表示形状是星 常用的颜色,形状如下
%并且图形的曲线与字符串依次对应,可用鼠标拖动图例框改变其位置。
6.4在一个图中先画一个函数,然后接着画其他函数
例:在指令窗输入 x=0:pi/30:pi; y1=sin(x); plot(x,y1,'r') %回车后得到图形
接下来还想在这个图形上接着画 y=sin2x,继续在指令窗输入 y2=sin(2*x); hold on plot(x,y2,'b*')
第六讲 matlab的图形绘制功能
6.1 离散数据和离散函数的可视化
一对实数(x,y)可以表示为平面上的一个点; 一对实数向量x=[x1,x2,…,xn]T,y=[y1,y2,…,yn]T,可以表示平面上 的一组点。MATLAB就是利用这种几何比拟法实现了离散数据 的可视化。 离散函数可视化的步骤是:先根据离散函数特征选定一组自变 量x=[x1,x2,…,xn]T,再根据所给离散函数yn=f(xn)算得相应的 y=[y1,y2,…,yn]T,然后在平面上几何的表现这组向量对(x,y)
注: 坐标控制 函数的调用格式为: axis([xmin xmax ymin ymax zmin zmax]) axis函数功能丰富,常用的用法还有: axis equal 纵、横坐标轴采用等长刻度 axis square 产生正方形坐标系(缺省为矩形) axis auto 使用缺省设置 axis off 取消坐标轴 axis on 显示坐标轴 grid on/off命令控制是画还是不画网格线,不带参数的grid命 令在两种状态之间进行切换。 box on/off命令控制是加还是不加边框线,不带参数的box命令 在两种状态之间进行切换。
0.4 0.5 Y 0.6 0.7
0.4 0.4 [X,Y]=meshgrid(0.1:0.1:0.3,0.4:0.1:0.7) 0.5 0.5 0.6 0.6 0.7 0.7
绘制三维曲面的函数 surf函数和mesh函数的调用格式为: mesh(x,y,z) surf(x,y,z) 一般情况下,x,y,z是维数相同的矩阵。x,y是网格坐标矩阵,z是 网格点上的高度矩阵。 例 绘制三维曲面图z=sin(x+sin(y))-x/10。 程序如下: [x,y]=meshgrid(0:0.25:4*pi); z=sin(x+sin(y))-x/10; mesh(x,y,z); axis([0 4*pi 0 4*pi -2.5 1]);
plot绘图函数的叁数
字元
y k w
颜色
黄色 黑色 白色
字元
. o x
图线型态
点 圆 x
b
g r c m
蓝色
绿色 红色 亮青色 锰紫色
+
* : -.
+
* 实线 点线 点虚线
--
虚线
6.2连续函数的可视化
连续函数可视化包含三个环节 1.从连续函数获得一组采样数据,即选定一组自变量采样点 (包括采样的起点、终点和采样步长),并计算相应的函数值 2.离散数据的可视化 3.图形上离散点的连续化 显然,图像上的离散点不能很好的表现函数连续性。常用的处 理方法有: 对区间进行更细的分割,计算更多的点,以近似表现函数的连 续变化
三维螺旋线例子: t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) grid %添加网格
2 三维曲面
画二维图形的时候,需要在x轴上取若干点,然后计算相应函 数值,描点画图。 同样,画三维曲面的时候,需要在x0y面上取若干点,然后计 算相应的函数值,描点画图
如图,在xoy面上取点 [0.1,0.4] [0.2,0.4] [0.3,0.4] [0.1,0.5] [0.2,0.5] [0.3,0.5] [0.1,0.6] [0.2,0.6] [0.3,0.6] [0.1,0.7] [0.2,0.7] [0.3,0.7] 把所有的x轴坐标拿出按以上顺序组 0 .1 0 .2 0 .3 成矩阵 0 .1 0 .2 0 .3 X 0 .1 0 .2 0 .3 0 .1 0 .2 0 .3 把所有的y轴坐标拿出按以上顺序组 成矩阵 用一个命令可以方便的生成X、Y
6.6三维立体图形
1.三维曲线 plot3命令将绘制二维图形的函数plot的特性扩展到三维空间图形。 函数格式除了包括第三维的信息(比如Z方向)之外,与二维函数 plot相同。 plot3一般语法调用格式是plot3(x,y,z,S),这里x,y和z是向量或矩 阵,S是可选的字符串,用来指定颜色、标记符号和/或线形 (S可以省略)。
程序如下:
[x,y]=meshgrid(-8:0.5:8); z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps); subplot(2,2,1); mesh(x,y,z); title('mesh(x,y,z)') subplot(2,2,2); meshc(x,y,z); title('meshc(x,y,z)') subplot(2,2,3); meshz(x,y,z) title('meshz(x,y,z)') subplot(2,2,4); surf(x,y,z); title('surf(x,y,z)')
图中十字交叉位置为鼠标所在之处,如果点击鼠标的左键, gtext命令后面的文字就被标注在图中这个位置
注Fra Baidu bibliotek:两个新命令的用法 axis gtext
6.3在同一个图上画n个曲线
已知n组向量对 (x1,y1)线型s1、 (x2,y2) 线型s2、… (xn,yn) 线型sn 命令格式 plot(x1,y1, 's1',x2,y2, 's2',...,xn,yn, 'sn') 例:在一个图中画两条曲线y=sinx ([0,pi]),y=sin2x ([-pi/2,pi/2]) x1=0:pi/20:pi; x2=-pi/2:pi/20:pi/2; y1=sin(x1); y2=sin(2*x2); plot(x1,y1,'r*',x2,y2,'b-') legend('sinx','sin2x') %在当前图形内建立一图例说明框,框内显示各字符串。
接下来用鼠标定位标注每个曲线
结束画图 hold off
6.5一个图形窗有多个子图 用subplot指令对图形窗分割 例
x=0:0.001:10; %在一个图形窗口绘制四个子图,排列方式为两行两列 %在一行一列的位置用蓝线画sinx,标题"子图(1)" subplot(2,2,1),plot(x,sin(x)); title('子图(1)') %在一行二列的位置用蓝线画sin10x,标题"子图(2)" subplot(2,2,2),plot(x,sin(10*x)); title('子图(2)') %在二行一列的位置用红星画sinx,标题"子图(3)" subplot(2,2,3),plot(x,sin(x),'r*'); title('子图(3)') %在二行二列的位置用红色:画sin10x,标题"子图(4)" subplot(2,2,4),plot(x,sin(10*x),'r:'); title('子图(4)')
例题
1.y=sin(x)sin(9x),在[0,π]取12个采样点 建立m文件sinxsin9x.m x=50,pi,12); %自变量取0到pi等距的12个采样点 y=sin(x).*sin(9*x); %计算相应的函数值向量,注意.* plot(x,y,'r.') %画图,用红色的点表示 grid on axis([0,pi,-1,1]) %图形的坐标范围x轴[0,pi],y轴[-1,1] xlabel('x轴') ylabel('y轴') title('点过少的图形') gtext('y=sin(x)*sin(9x)') %鼠标定位标注图形
例题:
离散函数y=|n|。自变量选取[-10,10],用红色的星“*”表示,画 坐标格,x轴标注“n”,y轴标注“y轴”,图的标题“y=|n|” 建立非函数m文件absfun.m n=(-10:10)'; %产生一组自变量数据 y=abs(n); %计算向量n各点的函数值 plot(n,y,'r*') %用红色的星表示向量对(x,y) grid on %画坐标格 xlabel('n') %给x轴标注 ylabel('y轴') %给y轴标注 title('y=|n|') %给图标注
练习
1.用红色线绘制
2.作图:在一个图形窗口中画四幅图 一行一列的位置绘制sin(x)*cos(x) , 0<x<pi, 要求:用蓝色:,标题 sin(x)*cos(x) ,标出x,y轴 一行二列绘制exp(sin(3*x)) ,0<x<pi, 要求:用红色线,标题 exp(sin(3*x)) ,标出x,y轴 二行一列[0,4π]画sin(x),并在函数图上标注 “y=sin(x)”, ,x轴,y轴,标题为“正弦函数图象”. 二行二列[0,4π]画cos(x),并在函数图上标注 “y=cos(x)”, ,x轴,y轴,标题为“余弦函数图象”.
若只输入sphere画 图,则是默认了 n=20的情况
三维表面图形的着色 三维表面图实际上就是在网格图的每一个网格片上涂上颜色。 surf函数用缺省的着色方式对网格片着色。除此之外,还可以 用shading命令来改变着色方式。 shading faceted命令将每个网格片用其高度对应的颜色进行着 色,但网格线仍保留着,其颜色是黑色。这是系统的缺省着色 方式。 shading flat命令将每个网格片用同一个颜色进行着色,且网格 线也用相应的颜色,从而使得图形表面显得更加光滑。 shading interp命令在网格片内采用颜色插值处理,得出的表 面图显得最光滑。
其它的几个三维绘图函数 (1) 在Matlab中有一个专门绘制圆球体的函数sphere,其调用格 式如下: [x,y,z]=sphere(n) 此函数生成三个(n+1)×(n+1)阶的矩阵,再利用函数surf(x,y,z)可 生成单位球面. [x,y,z]=sphere 此形式使用了默认值n=20 sphere(n) 只绘制球面图,不返回值. 运行下面程序: sphere(30); axis square; 我们得到球体图形:
相关文档
最新文档