——matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。

Slides:



Advertisements
Similar presentations
§3.4 空间直线的方程.
Advertisements

3.4 空间直线的方程.
MATLAB程序设计教程(第二版) 刘卫国 主编 中国水利水电出版社.
第5章 MATLAB绘图 5.1 二维图形 5.2 三维图形 5.3 三维图形的精细处理 5.4 隐函数绘图 5.5 低层绘图操作
丰富的图形世界(2).
第四讲 绘图功能.
数学软件 Matlab —— 二维平面作图 —— 三维空间作图.
MATLAB程序设计基础 MATLAB的图形处理.
——matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。
数学软件 Matlab —— 二维平面作图 —— 三维空间作图.
——Matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。
数值计算的工具—MATLAB 电子计算机技术为应用数学解决实际问题创造了物质条件 。
第5章 MATLAB 绘图.
第一部分 Matlab 软件介绍 《数学分析》实验课.
第三章 MATLAB图形系统 3.1 图形绘制 3.2 图形标注 3.3 对数和极坐标系中图形绘制 3.4 复杂图形绘制 3.5 坐标轴控制
第六章 图 形 基 础 6.1 概述 6.2 基本二维绘图 6.3 格式化绘图 6.4 特殊图形函数 6.5 基本三维绘图
Matlab教學 Speaker:林昱志 Date:2012/10/25.
第5章 MATLAB绘图 5.1 二维数据曲线图 5.2 其他二维图形 5.3 隐函数绘图 5.4 三维图形 5.5 图形修饰处理
第一讲 MATLAB简介 1.1 MATLAB与通信仿真 1.1.1 通信电路与系统仿真 1.1.2 MATLAB的发展史
Application of Matlab Language
第4章 MATLAB绘图 4.1 MATLAB二维曲线绘图 基本绘图指令 1.plot(Y) 功能:画一条或多条折线图.
绘制圆与多边形 椭圆形 绘制椭圆形的方法是 drawOval(x ,y , width , height), 绘制实心椭圆形的方法是
  MATLAB操作基础 《信息隐藏实验教程》教学幻灯片 一.
MATLAB仿真实验 通信于信息工程学院 电路实验中心 朱治国.
数学模型实验课(三) 插值与三维图形.
第三章 MATLAB图形系统 3.1 图形绘制 3.2 图形标注 3.3 对数和极坐标系中图形绘制 3.4 复杂图形绘制 3.5 坐标轴控制
数学建模与数学实验 MATLAB作图.
§ 9.1常用数学软件简介及MATLAB基础知识
实验二 MATLAB绘制图形 (一) 实验类型:验证性 (二) 实验类别:基础实验 (三) 实验学时数:2学时 .
双曲线的简单几何性质 杏坛中学 高二数学备课组.
28.1 锐角三角函数(2) ——余弦、正切.
第一章 函数与极限.
1.函数 2.程序 3.图形 目的:掌握Matlab作平面曲线图的方法与技巧
第一单元 第3课 Matlab基本语法与操作 1. plot指令的基本调用格式 2.多次叠绘、双纵坐标和多子图 3.多子图
数学软件 第9讲 MATLAB绘图二 主讲教师: 鲜大权 副教授 西南科技大学理学院数学系.
MATLAB 入门教程.
第二十二章 曲面积分 §1 第一型曲面积分 §2 第二型曲面积分 §3 高斯公式与斯托克斯公式.
第三单元 第3课 实验 多元函数的积分 实验目的:掌握matlab计算二重积分与三重积分的方法,提高应用重积分解决有关应用问题的能力。
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
MATLAB 程式設計入門篇 二維平面繪圖 改自張智星講義
第5章 MATLAB绘图 5.1 二维图形 5.2 三维图形 5.3 三维图形的精细处理 5.4 隐函数绘图 5.5 低层绘图操作
Z Mathematical Model ‡ ' 图形处理.
MATLAB 程式設計入門篇 三維立體繪圖 (part1)
三維繪圖 Helix t = 0:pi/50:10*pi; % linspace(0,10*pi,500); figure plot3(sin(t),cos(t),t) grid on axis square Remark: zlabel, view, surf.
第3章 MATLAB图形初步 编者.
第二章 MATLAB编程与作图 2.1 程序设计 2.2 作图 2.3 在线帮助和文件管理 2.4 习题 2019年4月23日
第4章 Excel电子表格制作软件 4.4 函数(一).
复习: 若A(x1,y1,z1) , B(x2,y2,z2), 则 AB = OB - OA=(x2-x1 , y2-y1 , z2-z1)
正切函数的图象和性质 周期函数定义: 一般地,对于函数 (x),如果存在一个非零常数T,使得当x取定义域内的每一个值时,都有
可编辑图表汇总 修改方法: 点击图表内容→“设计”选项卡→编辑数据.
_13简单的GDI绘图操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
第二节 MATLAB 图形处理 内容: §1 二维图形显示 §2 图形可视编辑工具 §3 三维图形显示 §4 视角变换与三视图
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
线 性 代 数 厦门大学线性代数教学组 2019年5月12日4时19分 / 45.
正弦、余弦函数的性质 华容一中 伍立华 2017年2月24日.
1.5 Matlab绘图 plot(y) plot(x,y)
正弦函数的性质与图像.
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
实验一 特殊函数与图形.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
实验二 MATLAB绘制图形.
三角 三角 三角 函数 余弦函数的图象和性质.
第2章 MATLAB的基本语法 2.1 变量及其赋值 2.2 运算符与数学表达式 2.3 控制流 2.4 数据的输入输出及文件的读写
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
§4.5 最大公因式的矩阵求法( Ⅱ ).
1.4.1正弦函数、余弦函数的图象.
3.3.2 两点间的距离 山东省临沂第一中学.
Presentation transcript:

——matlab语言丰富的图形表现方法,使得数学计算结果可以方便地、多样性地实现了可视化,这是其它语言所不能比拟的。

matlab语言的绘图功能 matlab语言不仅具有高层绘图能力,而且还具有底层绘图能力——句柄绘图方法。 不仅能绘制几乎所有的标准图形,而且其表现形式也是丰富多样的。 matlab语言不仅具有高层绘图能力,而且还具有底层绘图能力——句柄绘图方法。 在面向对象的图形设计基础上,使得用户可以用来开发各专业的专用图形。

一、二维绘图 (一)plot —— 最基本的二维图形指令 plot的功能: plot命令自动打开一个图形窗口Figure 用直线连接相邻两数据点来绘制图形 根据图形坐标大小自动缩扩坐标轴,将数据标尺及单位标注自动加到两个坐标轴上,可自定坐标轴,可把x, y 轴用对数坐标表示

如果已经存在一个图形窗口,plot命令则清除当前图形,绘制新图形 可单窗口单曲线绘图;可单窗口多曲线绘图;可单窗口多曲线分图绘图;可多窗口绘图 可任意设定曲线颜色和线型 可给图形加坐标网线和图形加注功能

plot的调用格式 plot(x) —— 缺省自变量绘图格式,x为向量, 以x元素值为纵坐标,以相应元素下标为横坐标绘图 plot(x,y) —— 基本格式,以y(x)的函数关系作出直角坐标图,如果y为n×m的矩阵,则以x 为自变量,作出m条曲线 plot(x1,y1,x2,y2) —— 多条曲线绘图格式

plot(x,y,’s’) —— 开关格式,开关量字符串s设定曲线颜色和绘图方式,使用颜色字符串的前1~3个字母,如 yellow—yel表示等。 或plot(x1,y1,’s1’,x2,y2,’s2’,…)

S的标准设定值如下: 字母 颜色 标点 线型 y 黄色 · 点线 m 粉红 ○ 圈线 c 亮蓝 × ×线 r 大红 + +字线 字母 颜色 标点 线型 y 黄色 · 点线 m 粉红 ○ 圈线 c 亮蓝 × ×线 r 大红 + +字线 g 绿色 - 实线 b 蓝色  星形线 w 白色 : 虚线 k 黑色 -· (--) 点划线

matlab线形: [ + | o | * | . | x | square | diamond | v | ^ | > | < | pentagram | hexagram ] square 正方形 diamond 菱形 pentagram 五角星 hexagram 六角星

1. 单窗口单曲线绘图 例1:x=[0, 0.48,0.84,1,0.91,0.6,0.14] [ x1, x2, x3, x4, x5, x6, x7,] plot (x)

2. 单窗口多曲线绘图 例2:t=0:pi/100:2*pi; y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5); plot(t,y,t,y1,t,y2) y y1 y2

例 3:y=sin(t);y1=sin(t+0. 25);y2=sin(t+0. 5); y3=cos(t);y4=cos(t+0 例 3:y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5); y3=cos(t);y4=cos(t+0.25);y5=cos(t+0.5); plot(t,[y',y1',y2',y3',y4',y5'])

y3=cos(t);y4=cos(t+0.25);y5=cos(t+0.5); plot(t,y3);hold on; plot(t,y4); plot(t,y5);

x=peaks;plot(x) x=1:length(peaks);y=peaks;plot(x,y)

3. 单窗口多曲线分图绘图 subplot —— 子图分割命令 调用格式: subplot(m,n,p) —— 按从左至右, 从上至下排列 行 列 绘图序号

subplot(1,3,1); plot(t,y) subplot(1,3,2); plot(t,y3) subplot(1,3,3); plot(t,y2)

subplot(3,1,1); plot(t,y) subplot(3,1,2); plot(t,y3) subplot(3,1,3); plot(t,y2)

subplot('position',[left bottom width height])

4. 多窗口绘图 figure(n) —— 创建窗口函数,n为窗 口顺序号。 t=0:pi/100:2*pi; y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5); plot(t,y) —— 自动出现第一个窗口 figure(2) plot(t,y1) —— 在第二窗口绘图 figure(3) plot(t,y2) ——在第三窗口绘图

5.可任意设置颜色与线型 例 4(例2):plot(t,y,'r-',t,y1,'g:',t,y2,'b*')

6.图形加注功能 将标题、坐标轴标记、网格线及文字注 释加注到图形上,这些函数为: title —— 给图形加标题 xlable —— 给x轴加标注 ylable —— 给y轴加标注 text —— 在图形指定位置加标注 gtext —— 将标注加到图形任意位置 grid on(off) —— 打开、关闭坐标网格线 legend —— 添加图例 axis —— 控制坐标轴的刻度

例:t=0:0.1:10 y1=sin(t);y2=cos(t);plot(t,y1,'r',t,y2,'b--'); x=[1.7*pi;1.6*pi]; y=[-0.3;0.8]; s=['sin(t)';'cos(t)']; text(x,y,s); title('正弦和余弦曲线'); legend('正弦','余弦') xlabel('时间t'),ylabel('正弦、余弦') grid axis square

2 4 6 8 10 时间t

axis的用法还有: axis([xmin xmax ymin ymax]) —— 用行向量中 给出的值设定坐标轴的最大和最小值。 如axis ([-2 2 0 5]) axis(equal) —— 将两坐标轴设为相等 axis on(off) —— 显示和关闭坐标轴的标 记、标志 axis auto —— 将坐标轴设置返回自动缺 省值

7.fplot —— 绘制函数图函数 fplot的调用格式: fplot(fun,lims) — 绘制函数fun在x区间 lims=[xmin xmax]的函数图。 fplot(fun,lims,'corline') — 以指定线形绘图。 [x,y]=fplot(fun,lims) — 只返回绘图点的值,而不绘图。用plot(x,y)来绘图。

命 令 含 义 plot 建立向量或矩阵各队队向量的图形 loglog x、y轴都取对数标度建立图形 semilogx 命 令 含 义 plot 建立向量或矩阵各队队向量的图形 loglog x、y轴都取对数标度建立图形 semilogx x轴用于对数标度,y轴线性标度绘制图形 semilogy y轴用于对数标度,x轴线性标度绘制图形 title 给图形加标题 xlabel 给x轴加标记 ylabel 给y轴加标记 text 在图形指定的位置上加文本字符串 gtext 在鼠标的位置上加文本字符串 grid 打开网格线   plot绘图函数的参数 字元 颜色 图线型态 y 黄色 . 点 k 黑色 o 圆 w 白色 x b 蓝色 + g 绿色 * r 红色 - 实线 c 亮青色 : 点线 m 锰紫色 -. 点虚线 -- 虚线

fplot('[sin(x),tan(x),cos(x)]',2. pi fplot('[sin(x),tan(x),cos(x)]',2*pi*[-1 1 -1 1]) fplot('humps',[0 1],'rp')

8.ezplot ——符号函数的简易绘图函数 ezplot的调用格式: ezplot(f) —这里f为包含单个符号变量x的符号表达式,在x轴的默认范围 [-2*pi 2*pi]内绘制f(x)的函数图 ezplot(f,xmin,xmax) — 给定区间 ezplot(f,[xmin,xmax],figure(n)) — 指定绘图窗口绘图。

ezplot('sin(x)') ezplot('sin(x)','cos(y)',[-4*pi 4*pi],figure(2))

(二) fill –––– 基本二维绘图函数 fill的功能: 绘制二维多边形并填充颜色 例:x=[1 2 3 4 5];y=[4 1 5 1 4]; fill(x,y,'r')

其他二维图形 1.对数坐标图形 MATLAB提供了绘制对数和半对数坐标曲线的函数,调用格式为: semilogx(x1,y1,选项1,x2,y2,选项2,…) semilogy(x1,y1,选项1,x2,y2,选项2,…) loglog(x1,y1,选项1,x2,y2,选项2,…) 例5-11 绘制y=10x2的对数坐标图并与直角线性坐标图进行比较。

2.极坐标图 polar函数用来绘制极坐标图,其调用格式为: polar(theta,rho,选项) 其中theta为极坐标极角,rho为极坐标矢径,选项的内容与plot函数相似。 例5-12 绘制r=sin(t)cos(t)的极坐标图,并标记数据点。 程序如下: t=0:pi/50:2*pi; r=sin(t).*cos(t); polar(t,r,'-*');

bar 长条图 errorbar 图形加上误差范围 fplot 较精确的函数图形 polar 极座标图 hist 累计图 rose 小整理:其他各种二维绘图函数 bar 长条图 errorbar 图形加上误差范围 fplot 较精确的函数图形 polar 极座标图 hist 累计图 rose 极座标累计图 stairs 阶梯图 stem 针状图 fill 实心图 feather 羽毛图 compass 罗盘图 quiver 向量场图

(三)特殊二维绘图函数 hist –––– 绘制统计直方图 stairs –––– 绘制阶梯图 stem –––– 绘制火柴杆图 bar –––– 绘制直方图 polar –––– 绘制极坐标图 hist –––– 绘制统计直方图 stairs –––– 绘制阶梯图 stem –––– 绘制火柴杆图 rose –––– 绘制统计扇形图 comet –––– 绘制彗星曲线

compass –––– 复数向量图(罗盘图) feather –––– 复数向量投影图(羽毛图) errorbar –––– 绘制误差棒图 compass –––– 复数向量图(罗盘图) feather –––– 复数向量投影图(羽毛图) quiver –––– 向量场图 area –––– 区域图 pie –––– 饼图 convhull –––– 凸壳图 scatter –––– 离散点图

例,绘制阶梯曲线 x=0:pi/20:2*pi;y=sin(x);stairs(x,y)

例:阶梯绘图 h2=[1 1;1 -1];h4=[h2 h2;h2 -h2]; h8=[h4 h4;h4 -h4];t=1:8; subplot(8,1,1);stairs(t,h8(1,:));axis('off') subplot(8,1,2);stairs(t,h8(2,:));axis('off') subplot(8,1,3);stairs(t,h8(3,:));axis('off') subplot(8,1,4);stairs(t,h8(4,:));axis('off') subplot(8,1,5);stairs(t,h8(5,:));axis('off') subplot(8,1,6);stairs(t,h8(6,:));axis('off') subplot(8,1,7);stairs(t,h8(7,:));axis('off') subplot(8,1,8);stairs(t,h8(8,:));axis('off')

h2=[1 1;1 -1];h4=[h2 h2;h2 -h2]; h8=[h4 h4;h4 -h4]; t=1:8; for i=1:8 subplot(8,1,i); stairs(t,h8(i,:)) axis('off') end

例:绘制极坐标绘图 t=0:2*pi/90:2*pi;y=cos(4*t);polar(t,y)

例:绘制火柴杆绘图 t=0:0.2:2*pi; y=cos(t); stem(y)

例:绘制直方图 t=0:0.2:2*pi; y=cos(t); bar(y)

例:绘制彗星曲线图 t= -pi:pi/500:pi; y=tan(sin(t))-sin(tan(t)); comet(t,y)

x=magic(6);area(x)

x=[1 2 3 4 5 6 7];y=[0 0 0 1 0 0 0]; pie(x,y)

pie(x,y,{'North','South','East','West', 'middle','fa','white'})

load seamount scatter(x,y,50,z)

a=rand(200,1);b=rand(200,1); c=rand(200,1); scatter(a,b,100,c,'p')

绘图 实例 [x,y,z]=sphere(20); subplot(1,2,1); surf(x,y,z);axis equal; light('Posi',[0,1,1]); shading interp; hold on; plot3(0,1,1,'p');text(0,1,1,' light'); subplot(1,2,2);

x=linspace(0,3*pi,100); Z=[sin(x);sin(2*x);sin(2*x)]; Y=[zeros(size(x));ones(size(x))/2;ones(size(x))]; subplot(2,2,1) plot3(x,Y,Z) grid,xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis') title('DefaultAz=-37.5,El=30') view(-37.5,30)

subplot(1,2,1); [X,Y,Z]=peaks(30); waterfall(X,Y,Z) xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis'); subplot(1,2,2); contour3(X,Y,Z,12,'k'); %其中12代表高度的等级数

[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,1); ezplot('x^2+y^2-9');axis equal subplot(2,2,2); ezplot('x^3+y^3-5*x*y+1/5') subplot(2,2,3); ezplot('cos(tan(pi*x))',[ 0,1]) subplot(2,2,4); ezplot('8*cos(t)','4*sqrt(2)*sin(t)',[0,2*pi])

x=0:pi/50:2*pi; y=sin(x); z=cos(x); plot(x,y,'r',x,z,'g'); %绘制两根不同曲线 Hl=get(gca,'Children'); %获取两曲线句柄向量Hl for k=1:size(Hl) if get(Hl(k),'Color')==[0 1 0] %[0 1 0]代表绿色 Hlg=Hl(k); %获取绿色线条句柄

三维绘图 三维绘图的主要功能: 绘制三维线图 绘制等高线图 绘制伪彩色图 绘制三维网线图 绘制三维曲面图、柱面图和球面图 绘制三维多面体并填充颜色

4 三维图形 1 三维曲线 plot3函数与plot函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n) 其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。

例 绘制三维曲线。 程序如下: t=0:pi/100:20*pi; x=sin(t); y=cos(t); z=t.*sin(t).*cos(t); plot3(x,y,z); title('Line in 3-D Space'); xlabel('X');ylabel('Y');zlabel('Z'); grid on;

2 三维曲面 1.产生三维数据 在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。其格式为: x=a:d1:b; y=c:d2:d; [X,Y]=meshgrid(x,y); 语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。

2.绘制三维曲面的函数 surf函数和mesh函数的调用格式为: mesh(x,y,z,c) surf(x,y,z,c) 一般情况下,x,y,z是维数相同的矩阵。x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。

例 绘制三维曲面图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]); 此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。其用法与mesh类似,不同的是meshc还在xy平面上绘制曲面在z轴方向的等高线,meshz还在xy平面上绘制曲面的底座。

例在xy平面内选择区域[-8,8]×[-8,8],绘制4种三维曲面图。 程序如下: [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)')

3.标准三维曲面 sphere函数的调用格式为: [x,y,z]=sphere(n) cylinder函数的调用格式为: [x,y,z]= cylinder(R,n) MATLAB还有一个peaks 函数,称为多峰函数,常用于三维曲面的演示。

例 绘制标准三维曲面图形。 程序如下: t=0:pi/20:2*pi; [x,y,z]= cylinder(2+sin(t),30); subplot(2,2,1); surf(x,y,z); subplot(2,2,2); [x,y,z]=sphere; subplot(2,1,2); [x,y,z]=peaks(30);

其他三维图形 在介绍二维图形时,曾提到条形图、杆图、饼图和填充图等特殊图形,它们还可以以三维形式出现,使用的函数分别是bar3、stem3、pie3 和fill3。 bar3函数绘制三维条形图,常用格式为: bar3(y) bar3(x,y)

stem3函数绘制离散序列数据的三维杆图,常用格式为: stem3(z) stem3(x,y,z) pie3函数绘制三维饼图,常用格式为: pie3(x) fill3函数等效于三维函数fill,可在三维空间内绘制出填充过的多边形,常用格式为: fill3(x,y,z,c)

例 绘制三维图形: (1) 绘制魔方阵的三维条形图。 (2) 以三维杆图形式绘制曲线y=2sin(x)。 (3) 已知x=[2347,1827,2043,3025],绘制饼图。 (4) 用随机的顶点坐标值画出五个黄色三角形。

程序如下: subplot(2,2,1); bar3(magic(4)) subplot(2,2,2); y=2*sin(0:pi/10:2*pi); stem3(y); subplot(2,2,3); pie3([2347,1827,2043,3025]); subplot(2,2,4); fill3(rand(3,5),rand(3,5),rand(3,5), 'y' )

例 绘制多峰函数的瀑布图和等高线图。 程序如下: subplot(1,2,1); [X,Y,Z]=peaks(30); waterfall(X,Y,Z) xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis'); subplot(1,2,2); contour3(X,Y,Z,12,'k'); %其中12代表高度的等级数

5 图形修饰处理 1 视点处理 MATLAB提供了设置视点的函数view,其调用格式为: view(az,el) 其中az为方位角,el为仰角,它们均以度为单位。系统缺省的视点定义为方位角-37.5°,仰角30°。

例 从不同视点观察三维曲线。 2 色彩处理 1.颜色的向量表示 MATLAB除用字符表示颜色外,还可以用含有3个元素的向量表示颜色。向量元素在[0,1]范围取值,3个元素分别表示红、绿、蓝3种颜色的相对亮度,称为RGB三元组。

2.色图 色图(Color map)是MATLAB系统引入的概念。在MATLAB中,每个图形窗口只能有一个色图。色图是m×3 的数值矩阵,它的每一行是RGB三元组。色图矩阵可以人为地生成,也可以调用MATLAB提供的函数来定义色图矩阵。

3.三维表面图形的着色 三维表面图实际上就是在网格图的每一个网格片上涂上颜色。surf函数用缺省的着色方式对网格片着色。除此之外,还可以用shading命令来改变着色方式。 shading faceted命令将每个网格片用其高度对应的颜色进行着色,但网格线仍保留着,其颜色是黑色。这是系统的缺省着色方式。

shading flat命令将每个网格片用同一个颜色进行着色,且网格线也用相应的颜色,从而使得图形表面显得更加光滑。 shading interp命令在网格片内采用颜色插值处理,得出的表面图显得最光滑。

例 3种图形着色方式的效果展示。 程序如下: [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; subplot(1,3,3); surf(x,y,z);shading interp;

3 光照处理 MATLAB提供了灯光设置的函数,其调用格式为: light('Color',选项1,'Style',选项2,'Position',选项3)

例 光照处理后的球面。 程序如下: [x,y,z]=sphere(20); subplot(1,2,1); surf(x,y,z);axis equal; light('Posi',[0,1,1]); shading interp; hold on; plot3(0,1,1,'p');text(0,1,1,' light'); subplot(1,2,2); light('Posi',[1,0,1]); plot3(1,0,1,'p');text(1,0,1,' light');

4 图形的裁剪处理 例 绘制三维曲面图,并进行插值着色处理,裁掉图中x和y都小于0部分。 程序如下: [x,y]=meshgrid(-5:0.1:5); z=cos(x).*cos(y).*exp(-sqrt(x.^2+y.^2)/4); surf(x,y,z);shading interp; pause %程序暂停 i=find(x<=0&y<=0); z1=z;z1(i)=NaN; surf(x,y,z1);shading interp; 为了展示裁剪效果,第一个曲面绘制完成后暂停,然后显示裁剪后的曲面。

6 图像处理与动画制作 1 图像处理 1.imread和imwrite函数 imread和imwrite函数分别用于将图像文件读入MATLAB工作空间,以及将图像数据和色图数据一起写入一定格式的图像文件。MATLAB支持多种图像文件格式,如.bmp、.jpg、.jpeg、.tif等。

2.image和imagesc函数 这两个函数用于图像显示。为了保证图像的显示效果,一般还应使用colormap函数设置图像色图。 例5-26 有一图像文件flower.jpg,在图形窗口显示该图像。 程序如下: [x,cmap]=imread('flower.jpg'); %读取图像的数据阵和色图阵 image(x);colormap(cmap); axis image off %保持宽高比并取消坐标轴

2 动画制作 MATLAB提供getframe、moviein和movie函数进行动画制作。 1.getframe函数 getframe函数可截取一幅画面信息(称为动画中的一帧),一幅画面信息形成一个很大的列向量。显然,保存n幅图面就需一个大矩阵。

2.moviein函数 moviein(n)函数用来建立一个足够大的n列矩阵。该矩阵用来保存n幅画面的数据,以备播放。之所以要事先建立一个大矩阵,是为了提高程序运行速度。 3.movie函数 movie(m,n)函数播放由矩阵m所定义的画面n次,缺省时播放一次。

例 绘制了peaks函数曲面并且将它绕z轴旋转。 程序如下 [X,Y,Z]=peaks(30); surf(X,Y,Z) axis([-3,3,-3,3,-10,10]) axis off; shading interp; colormap(hot); m=moviein(20); %建立一个20列大矩阵 for i=1:20 view(-37.5+24*(i-1),30) %改变视点 m(:,i)=getframe; %将图形保存到m矩阵 end movie(m,2); %播放画面2次

(一)三维线图 plot3 —— 基本的三维图形指令 调用格式: plot3(x,y,z) —— x,y,z是长度相同的向量 plot3(x,y,z,s) —— 带开关量 plot3(x1,y1,z1,'s1', x2,y2,z2,'s2', …)

二维图形的所有基本特性对三维图形全都适用。定义三维坐标轴 大小 axis([xmin xmax ymin ymax zmin zmax ]) grid on(off) 绘制三维网格 text(x,y,z,‘string’) 三维图形标注 子图和多窗口也可以用到三维图形中

例:绘制三维线图 t=0:pi/50:10*pi;plot3(t,sin(t),cos(t),'r:')

(二) 三维饼图 pie3([4 3 6 8 9])

(三)三维多边形 fill3 = fill —— 三维多边形的绘制和填色与二维多边形完全相同 调用格式: fill3(x,y,z,‘s’) —— 与二维相同

例: 用随机顶点坐标画出5个粉色的三角形,并用黄色的○表示顶点 y1=rand(3,5);y2=rand(3,5);y3=rand(3,5); fill3(y1,y2,y3,'m');hold on;plot3(y1,y2,y3,'yo')

(四)三维网格图 mesh —— 三维网线绘图函数 调用格式: mesh(z) —— z为n×m的矩阵,x与y 坐标为元素的下标 mesh(x,y,z) —— x,,y,z分别为三维空 间的坐标位置

例,矩阵的三维网线图 z=rand(6); z=round(z) 1 0 0 1 0 0 mesh(z); 0.8808 0.0729 0.4168 0.7694 0.3775 0.4776 0.3381 0.7101 0.0964 0.6352 0.3826 0.7086 0.1895 0.8791 0.6747 0.8965 0.6876 0.2380 0.7431 0.3594 0.5626 0.8784 0.1217 0.3910 0.7189 0.0899 0.8130 0.4865 0.0768 0.9759 0.8792 0.1610 0.8782 0.1131 0.1433 0.6288 z=round(z) 1 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 mesh(z);

mesh(z)

例:8阶hadamard矩阵的网线图 h2=[1 1;1 -1];h4=[h2 h2;h2 -h2] h8=[h4 h4;h4 -h4] 1 1 1 1 1 1 1 1 1 -1 1 -1 1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 1 -1 -1 1 1 -1 -1 1 1 1 1 1 -1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 -1 1 1 1 -1 -1 1 -1 1 1 -1 mesh(h8)

三维网线图作图要领 n×m维 生成坐标 —— [X,Y]=meshgrid(x,y) 表达式点运算 —— Z=X.^2+Y.^2 X,Y是n×m的矩阵,维数可任定 X— n Y— m Z— 默认方位角:37。5º,俯角30º。 n×m维

z=f(x,y) — 根据x,y坐标找出z的高度 例:绘制z=x2+y2的三维网线图形 x=-5:5; y=x; meshgrid—— 网线坐标值计算函数 z=f(x,y) — 根据x,y坐标找出z的高度 例:绘制z=x2+y2的三维网线图形 x=-5:5; y=x; [X,Y]=meshgrid(x,y) Z=X.^2+Y.^2 mesh(X,Y,Z) 坐标矩阵 坐标向量 纵坐标矩阵 绘图函数

colormap( [R,G,B])—— 色图设定函数 matlab 的颜色数据集合为红、绿、兰三颜色矩阵[R,G,B],维数m×3 r,g,b在[0 1]区间连续取值,理论上颜色种类可达无穷多种 matlab使用三维向量表示一种颜色,常用颜色数据见下表

调和色 [0.5 0.5 05] — 灰色 [0.5 0 0] — 暗红色 [1 0.62 0.4] — 铜色 [0.49 1 0.8] — 浅绿 [0.49 1 0.83] —宝石兰  饱和色 [0 0 0] — 黑色 [0 0 1] — 兰色 [0 1 0] — 绿色 [0 1 1] — 浅兰 [1 0 0] — 红色 [1 0 1] — 粉红 [1 1 0] — 黄色 [1 1 1] — 白色

(五)三维曲面图 surf —— 三维曲面绘图函数,与网格图 看起来一样 与三维网线图的区别: 网线图:线条有颜色,空挡是黑色的(无颜色) 曲面图:线条是黑色的,空挡有颜色(把 线条之间的空挡填充颜色,沿z轴按每一网 格变化

调用格式:  surf(x,y,z) —— 绘制三维曲面图,x,y,z 为图形坐标向量 例: [X,Y,Z]=peaks(30) ※peaks为matlab 自动生成的三维测 试图形 surf(X,Y,Z)

 surfc(X,Y,Z) — 带等高线的曲面图 [X,Y,Z]=peaks(30);surfc(X,Y,Z)

 surfl(X,Y,Z) —— 被光照射带阴影 的曲面图 [X,Y,Z]=peaks(30);surfl(X,Y,Z)

 cylinde(r,n) — 三维柱面绘图函数 例:绘制三维陀螺锥面 t1=0:0.1:0.9; t2=1:0.1:2; r=[t1 -t2+2]; [x,y,z]=cylinder(r,30); surf(x,y,z); grid

 为球面等分数,缺省为20 例:绘制三维球面 [x,y,z]=sphere(30);surf(x,y,z);

(六) 图形修饰方法 图形颜色的修饰 matlab 有极好的颜色表现功能,其颜色数据又构成了一维新的数据集合,也可称为四维图形 colormap(MAP) —— 色图设定函数,MAP为m×3维色图矩阵 图形颜色可根据需要任意生成,也可用matlab配备的色图函数

matlab 的色图函数: hsv —— 饱和值色图 gray —— 线性灰度色图 hot —— 暖色色图 cool —— 冷色色图 bone —— 兰色调灰色图 copper —— 铜色色图 pink —— 粉红色图 prism —— 光谱色图 jet ——饱和值色图II flag —— 红、白、蓝交替色图

shading faceted — 网格修饰,缺省方式

shading flat —— 去掉黑色线条,根据小方块的值确定颜色

shading interp —— 颜色整体改变,根据 小方块四角的值差补过度点的值确定颜色

peaks(30);shading interp;colormap(hot)

[X,Y,Z]=peaks(30);surfl(X,Y,Z) shading interp;colormap(cool);axis off

peaks(30);colormap(hot);colorbar('horiz') figure(2);colormap(cool);

 图形效果修饰 透视与消隐—— 用于网线图 裁剪修饰 ——用于网线图、曲面图 视角修饰 —— 观察不同角度的三维视图 其它修饰: a. 水线修饰 b. 等高线修饰

透视与消隐 p=peaks(30);mesh(p);hidden on

p=peaks(30);mesh(p);hidden off

裁减修饰 p=peaks; p(30:40,20:30)=nan*p(30:40,20:30); surf(p)

p=peaks; p(30:40,20:30)=nan*p(30:40,20:30); mesh(peaks,p)

视角修饰(函数view(az,el)) az ----方位角;el ---- 俯视角 省缺值为:az=-37.5; el=30 例。观察不同视角的波峰图形 z=peaks(40); subplot(2,2,1);mesh(z); subplot(2,2,2);mesh(z);view(-15,60); subplot(2,2,3);mesh(z);view(-90,0); subplot(2,2,4);mesh(z);view(-7,-10);

其它修饰: a. 水线修饰(waterfall) waterfall(peaks(30))

下列命令产生在y方向的水流效果: [x,y,z]=peaks; waterfall(x',y',z');

b. 等高线修饰 二维 contour(Z,n)--------绘制n条等高线 C= contourc(Z,n)------计算n条等高线的坐标 Clable(c)------给等高线加标注 例、在二维平面上绘制peaks函数的10条等 高线 contour(peaks,10); C=contourc(peaks,10);clabel(C)

contour3(peaks,20)

(五)、伪彩色图 z=peaks(30) pcolor(z)

(六)动画效果 动画生成的步骤 创建帧矩阵 ————— moviein 对动画中的每一帧生成图形,并把它们放到帧矩阵中 ———— getframe 从帧矩阵中回放动画

剔透玲珑球 [X0,Y0,Z0]=sphere(30); %产生单位球面的三维坐标 X=2*X0;Y=2*Y0;Z=2*Z0; %产生半径为2的球面的三维坐标 surf(X0,Y0,Z0); %画单位球面 shading interp %采用插补明暗处理 hold on; mesh(X,Y,Z);hold off %画外球面 hidden off %产生透视效果 axis off %不显示坐标轴

hold on;comet(x,y,0.02);hold off 动态图形动画效果 彗星状轨迹图 【*例】简单二维示例。 n=10; t=n*pi*(0:0.0005:1); x=sin(t);y=cos(t); plot(x,y,'g'); hold on;comet(x,y,0.02);hold off

【*例】卫星返回地球的运动轨线示意。 R0=1; %以地球半径为一个单位 a=12*R0;b=9*R0;T0=2*pi; %T0是轨道周期 T=5*T0;dt=pi/100;t=[0:dt:T]'; f=sqrt(a^2-b^2); %地球与另一焦点的距离 th=12.5*pi/180; %卫星轨道与x-y平面的倾角 E=exp(-t/20); %轨道收缩率 x=E.*(a*cos(t)-f);y=E.*(b*cos(th)*sin(t));z=E.*(b*sin(th)*sin(t)); plot3(x,y,z,'g') %画全程轨线 [X,Y,Z]=sphere(30);X=R0*X;Y=R0*Y;Z=R0*Z; %获得单位球坐标 grid on,hold on,surf(X,Y,Z),shading interp%画地球 x1=-18*R0;x2=6*R0;y1=-12*R0;y2=12*R0;z1=-6*R0;z2=6*R0; axis([x1 x2 y1 y2 z1 z2]) %确定坐标范围 view([117 37]),comet3(x,y,z,0.02),hold off%设视角、画运动轨线