实验3 数据和函数的可视化

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

添加图例 legend(string1,string2, ...)

在指定地方添加文本 text(x,y,string1,string2, ...)
文本的property可查看text函数的帮助文档

显示网格 grid on 或 grid off

保持当前窗口的图像, 以便继续画图到当前图上 hold on 或 hold off
【例6】 绘制如图所示三维着色面图。 [X,Y]=meshgrid([-4:0.5:4]); Z=sqrt(X.^2+Y.^2); surf(Z);figure; mesh(Z); 以MATLAB自带的三维函数peaks为例,演 示不同的三维作图效果(test3d.m)
如果曲面方程中Z不是很方便的使用显式表达式表示, 则可借助参数来形成。 比如我们在高数第一册中学习到的9种2次曲面,
点和线的基本属性

plot(x,y,string)
其中 string 是用 单引号 括起来的字符串,用来指定图 形的属性(点、线的形状和颜色) 还是前面的四个函数,运行如下指令: figure; %打开一个新的绘图窗口; p lot(x,e1,‘r*-’); %用红色的实线和*同时绘制 h old on; %使下面的绘图窗口上进行,不覆盖已绘制的图形; p lot(x,e2,‘b-.d’); %蓝色点划线和钻石形状同时绘制 h old on; p lot(x,e3,'k*'); h old on; p lot(x,e4,‘--p’) %绘制虚线和五角星,不指定颜色,颜色默认为 蓝色。
%计算 x的正弦函数值 %进行二维平面描点作图
1 二维画图
绘制二维图形最常用的函数就是 plot函数,对于不同形式的输入,该函 数可以实现不同的功能。其调用格式 如下:

plot(Y) 若Y为向量,则绘制的图形以向量索引 为横坐标、以向量元素值为纵坐标值。若Y为矩 阵,则绘制Y的列向量对其坐标索引的图形。等 价于:x=[1:length(y)];plot(x,y);
线条的粗细,字体大小,坐标轴属性等。 示例:
figure; plot(x,e1,‘r-*’,‘LineWidth’,1,‘markersize’,10); %设置线条粗细和标示大小 hold on; plot(x,e2,'kh','markersize',20,'markeredgecolor','r','markerfacecolor','g'); % 上面语句设置边界颜色为蓝色,填充颜色为绿色; hold on plot(x,e3,'b','LineWidth',3); hold on plot(x,e4,'y','LineWidth',4);
④ 若有多对数据,如(x1,y1);(x2,y2);…,(xm,ym),要绘制在 一副图形中,则使用:

plot(x1,y1,s1,x2,y2,s2, ... ,xn,yn,sn) 其中,s1,s2等,为绘制曲线的属性选项,包括颜色、 线性、点形状等。 省略属性时,在一幅图中画y1,y2,...ym的图,颜色由 matlab自动选择。
2 2 x y 以椭圆锥面为例: 2 2 z 2 a b
则可令x=a*z*cos(θ), y=b*z*sin(θ), 整段绘图指令为:
程序surface.m中提供了高数第一册的9种空间曲面的 绘制程序代码,其中有些为参数表达式形式,有些是 直接可以将Z写成x,y的显示表达式。 希望大家认真分析,掌握二维曲面绘图的方法。 运行、分析surface.m程序
fplot(‘fun’,lims) 表示绘制字符串fun指定的函数在 lims=[xmin,xmax]的图形. 注意: [1] fun必须是M文件的函数名或是独立变量为 x的字符串. [2] fplot函数不能画参数方程和隐函数图 形,但在一个图上可以画多个图形.
【例7】:在[0,10]范围内绘制函数sin(x2)的图形. 指令:fplot('sin(x.^2)',[ 0 , 1 0 ] ,'r'); 【例8】:在[-20,20]绘制 y1=200sin(x)/x 及y2=x2 的图形。 1.先写一个函数myfun.m: function Y = myfun(x) Y(:,1) = 200*sin(x(:))./x(:); Y(:,2) = x(:).^2; 2.在外部调用:fplot(‘myfun’,[-20 20])
设置坐标轴属性:axis 请自己用help查找其用法!
图形的修饰,包括title、axis、xlabel、ylabel、 text等函数。
title('text', 'Property1', value1, ' Property2', value2, ...) Property: linewidth, markersize, fontsize, fontweight, fontname, …
其他二维图形绘制语句:
【例3】绘制极坐标曲线(testpolar)
theta=0:0.01*pi:8*pi; rho=5*sin(4*theta/3); polar(theta,rho)
【例4】用不同曲线绘制函数表示正弦曲线 t=0:.2*pi:2*pi; y=sin(t); subplot(2,2,1);stairs(t,y); subplot(2,2,2);stem(t,y); subplot(2,2,3);bar(t,y);
属性可以全部指定,也可以只指定其中某几个排列,顺序任意。
线型 实线 : 虚线 -. 点划线 -- 间断线
点标记 . o x + * s d ^ 角 v > < p h 点 小圆圈 叉子符 加号 星号 方格 菱形 朝上三 朝下三角 朝右三角 朝左三角 五角星 六角星
颜色 y m c r g b w k 黄色 紫色 青色 红色 绿色 蓝色 白色 黑色
数学实验3
数据和函数的可视化
1 二维画图 2 三维画图 3 函数图形绘制
对应的库函数文件存放在系统\matlab\toolbox\ matlab目录下
问题:
如何画出 y=sin(x) 在 [0, 2*pi] 上的图像?
Matlab 绘图
手工作图

找点: x=0, pi/3, pi/2, 2*pi/3, pi, … 计算函数值: y=sin(0), sin(pi/3), sin(pi/2), 描点:在坐标系中画出这些离散点 用直线或曲线连接这些点,得到函数的大致图形
3o 特殊的三维图形函数(略) MATLAB语言还提供了不少特殊的三维 图形函数,能够绘制各种类型的三维图。 [X,Y,Z]= cylinder(R,N)此函数以母线 向量R生成单位柱面。母线向量R是在单位 高度里等分刻度上定义的半径向量。N为旋 转图周上的分格线的条数,用surf(X,Y, Z)来显示此柱面。 [X,Y,Z]= sylinder(R)或 [X,Y,Z]= cylinder 此形式为默认N=20且 R=[1 1]。
2o 三维曲面绘制

一般曲面绘制
其他函数, surfl( ), surfc( ) 等高线绘制 contour( ), contours( )

meshgrid 其作用是将给定的区域按一定的方式划分成平 面网格,该平面网格可以用来绘制三维曲面, 具体调用方式如下:

[X,Y]=meshgrid(x,y) 这里x和y为给定 的向量,一方面可以用来定义网格划分区域; 另一方面也可用来定义网格划分方法。矩阵X 和Y则是网格划分后的数据矩阵。
ຫໍສະໝຸດ Baidu
plot(X,Y)
① 若x, y 都是向量,则以 x 中元素为横坐标, y 中元 素为纵坐标作平面曲线。此时 x, y 必须具有相同长 度。(最常用) ② 若x, y 都是矩阵,则将 x 的列和 y 中相应的列相组 合,绘制多条平面曲线。此时 x, y 必须具有相同的 大小。 ③ 若x 是向量, y 是矩阵,若 x 的长度与 y 的行数相 等,则将 x 与 y 中的各列相对应,绘制多条平面曲 线;否则,若 x 的长度与 y 的列数相等,则将 x 与 y 中的各行相对应,绘制多条平面曲线。此时 x 的 长度必须等于 y 的行数或列数。(不常用)
[X,Y,Z]=sphere(N)此函数生成三个 (n+1)× (n+1)阶的矩阵,利用函数 surf(X,Y,Z)可生成单位球面。 此形式使用了默 [X,Y,Z]=sphere 认值N=20。 只绘制球面图而不 sphere(N) 返回任何值。

【例】略 x=0:pi/20:pi*3; r=5+cos(x); [a,b,c]=cylinder(r,30); mesh(a,b,c) [a,b,c]=sphere(40); t=abs(c); surf(a,b,c,t); axis('equal'); axis('square')
stem3, fill3, bar3 等
【例 5 】 装在玻璃展示柜里的项链 t=(0:0.02:2)*pi; x=sin(t); y=cos(t); z=cos(2*t); %以上为空间曲线的参数方程 plot3(x,y,z,'b-',x,y,z,'bd'); view([-82,58]);%设置观察视角 box on; legend('链','宝石')


Matlab 绘图
Matlab 作图

给出离散点列: x=[0:pi/10:2*pi] 计算函数值: y=sin(x) 画图:用 matlab 二维绘图命令 plot 作出函数图形 plot(x,y)
源代码如下: x = linspace(0, 2*pi,100); y = sin(x); plot(x, y); %在 0 到 2π 间,等分取 100 个点
【例6】略
3 函数图形绘制
fplot(fcn,lim,str) 绘制由字符串f c n指定的函数图形。这可以是标准 函数,也可以是用户在M文件f c n . m中自定义的 函数, 向量l i m= [x m i n xm a x ]给出绘图区间范围。该 向量也可以包含四个元素,后两个参数用来表示y 轴的区间, 即l i m=[ xm i n xm a x ym i n ym a x]。 字符串s t r传递给f p l o t,则可以改变图形的线型 和颜色。

新建绘图窗口 figure(n)

划分绘图区域 subplot(m,n,p) 将一个绘图窗口分割成 m*n 个子区域,并 按行 从左至 右 依次编号 。p 表示第 p 个绘图子区域。
【例2】演示程序testplot.m (本程序很重要,希望大家上机的时候自己运 行一遍,对照程序中的注释,掌握matlab的二 维绘图及标注等功能。当运行一个的绘图形式 时,可先把其它的注释掉。)
x, y 为给定的向量,X, Y 是网格划分后得到的网格矩阵
如:
x=-2:2; y=6:10; [XX,YY]=meshgrid(x,y)
分别得到:
则在xoy平面上形成 如下网格点:
(接上一页:) 此时如果使用: Z=sqrt(XX.^2+YY.^2), 则可得到空间上Z在XX和YY上每一点处的值 然后再使用mesh函数或者surf函数绘制图形,有: 其实就是将相邻网 格点的数据连起来 Surf使用表面着色 图绘制, Mesh则只绘制 网格线。
2 三维画图(空间曲线、空间曲面)
三维图形绘制中经常用到的基本绘 图命令有函数plot3,网图函数surf以及 着色图mesh等。 1o 三维曲线绘制
若要定义不同线型,可使用以下形式: p1ot3(X,Y,Z,s)其巾s为定义线型 的字符串,形式同plot函数。 P1ot3(x1,yl,zt,s1,x2,y2,z2, s2,x3,y3,z3,s3,…)这是组合绘图 调用形式。与plot相同。
【例1】 绘制 x [0,3], e
x2
,x e
2 x2
, xe
x2
,e
x
四个图形
x=linspace (0,3,50); e 1=exp(-x.^2); e 2=(x.^2).*exp(-x.^2); e 3=x.*exp(-x.^2); e 4=exp(-x); p lot(x,e1,x,e2,x,e3,x,e4); %把四幅图画在一个图形里, %这是最简单的指令,绘制颜色由matlab %自动指定 %线条粗细、形状均由matlab默认给定
相关文档
最新文档