上机材料二MATLAB语言绘图程序设计.docx
- 文档编号:6701586
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:12
- 大小:108.60KB
上机材料二MATLAB语言绘图程序设计.docx
《上机材料二MATLAB语言绘图程序设计.docx》由会员分享,可在线阅读,更多相关《上机材料二MATLAB语言绘图程序设计.docx(12页珍藏版)》请在冰豆网上搜索。
上机材料二MATLAB语言绘图程序设计
上机材料二、MATLAB语言绘图、程序设计
六、绘图
plot基本二维图形
fplot一元函数图象
plot3空间曲线
meshgrid网格数据生成
mesh网面图
surf曲面图
contour等高线图
contour33维等高线图
title标题
xlabelx轴说明
ylabely轴说明
zlabelz轴说明
clabel等高线高度标志
text文本
grid格栅
legend图例
hold图形保持
axis定制坐标轴
view改变视点
subplot子图
figure新图形窗口
clf清除图形
close关闭图形窗口
1曲线图
plot(x,y)作出以数据(x(i),y(i))为节点的折线图,其中x,y为同长度的向量。
plot(x1,y1,x2,y2,...)作出多组数据折线图;
fplot('fun',[a,b])作出函数fun在区间[a,b]上的函数图。
plot3(x,y,z)空间曲线图,其中x,y,z为同长度的向量.
»plot([1425],[13-12])
»plot([1425],[13-12],1:
3,[2103])%注意颜色
图形可直接保存为M文件,也可利用图形窗口菜单Edit/Copyfigure作为图片剪贴到Word或其他应用程序中.
图形的线型,标记,颜色均可设定.常用的有
颜色
线型
标记
b蓝(默认)
-实线(默认)
无标记(默认)
g绿
--虚线
*星
r红
:
粗点线
.点
y黄
-.点划线
o圈
m洋红
x叉
c青
+十字
w白
s方块
k黑
d菱形
v下三角形
^上三角形
<左三角形
>右三角形
h六角形
p五角形
例一元函数图y=x3-x-1和y=sin(5x),-1 »fplot('x.^3-x-1',[-1,2])。 holdon。 %在作下一幅图时保留已有图象 »x=-1: 0.2: 2。 y=sin(5*x)。 »plot(x,y,': ro')。 holdoff。 %释放holdon 2曲面图 [x,y]=meshgrid(xa,ya)当xa,ya分别为m维和n维行向量,得到x和y均为n行m列矩阵.meshgrid常用于生成X-Y平面上的网格数据. mesh(x,y,z)绘制网格图,是最基本的曲面图形命令,其中x,y,z是同阶矩阵,表示曲面三维数据. mesh(xa,ya,z)xa,ya分别为m维和n维向量,z均为n行m列矩阵.等价于 先[x,y]=meshgrid(xa,ya)再mesh(x,y,z). surf(x,y,z)绘制网面图,与mesh用法类似. contour(x,y,z)绘制等高线图,与mesh用法类似,可指定z的范围. contour3(x,y,z)绘制三维等高线图,与mesh用法类似,可指定z的范围. 例如 »xa=1: 3。 ya=1: 4。 [x,y]=meshgrid(xa,ya)。 z=x+y。 mesh(x,y,z) »[x,y,z] 123111234 123222345 123333456 123444567 这3组数据构成网面的12的格点坐标. 例二元函数图z=x*exp(-x2-y2) »clear。 close。 %close关闭所有图形窗口 »xa=-2: .2: 2。 ya=xa。 »[x,y]=meshgrid(xa,ya)。 z=x.*exp(-x.^2-y.^2)。 »mesh(x,y,z)。 %网格图 »surf(x,y,z)。 %网面图 »contour(x,y,z)。 %等高线图 »contour3(x,y,z)。 %三维等高线图 3.说明、格栅和图例 图5 Title('字符串')图形标题说明 xlabel,ylabel,zlabel用法类似于title,分别说明坐标轴x,y,z. Text(x,y,'字符串')将字符串表达的文字标于(x,y)处. Lengend('字符串1','字符串2',...)依次说明图例 gridon/gridoff显示/不显示格栅 例参变量函数 »clear。 close。 »t=0: 0.1: 20。 r=exp(-0.2*t)。 th=0.5*pi*t。 »x=r.*cos(th)。 y=r.*sin(th)。 z=t。 »plot3(x,y,z)。 »text(x (1),y (1),z (1),'START') »n=length(x)。 text(x(n),y(n),z(n),'END') »title(‘SPACELINE’) »xlabel('X')。 ylabel('Y')。 zlabel('Z')。 »legend('ConeLine')。 »gridon。 %再试一试gridoff,观察变化 4、图形控制 Holdon/holdoff保留/释放现有图形 axisoff/on不显示/显示坐标轴 axis([a,b,c,d])定制2维坐标轴范围a axis([a,b,c,d,e,f])定制3维坐标轴范围a view(az,el)调整视角,az为角度,el为高度(默认az=-37.5,el=30) figure开一个新图形窗口 close关闭现有图形窗口 subplot(m,n,k)将图形窗口分为m*n个子图,并指向第k幅图 5.图形对象设置 MATLAB图形窗口、坐标轴、图形元素等往往是系统自动选定的,有些可用图形命令来改变,如曲线的颜色、标题文本、视点等.一般可使用对象设置命令set来设置,如文本的字体,坐标轴刻度,窗口的背景色等,但用法较复杂.MATLAB的图形窗口建立了图形对象编辑工具,可直接改变图形设置. 作为示例,我们现在来设法将例3产生的图形改变成下列样子. (1)按工具栏Editplot按钮(指向左上方的箭头),使图形处于编辑状态; (2)曲线粗细和颜色: 选中曲线,用菜单Edit/CurrentObjectProperties...设置(或用鼠标双击可编辑),将颜色改为红色,粗细改为3; (3)字体大小: 选中所要编辑的文字,用菜单Edit/CurrentObjectProperties...设置; (4)坐标轴: 选中并双击坐标轴,将y轴方向设为“reverse”; (5)再按工具栏Editplot按钮,使图形回到正常状态; (6)调整视角: 按工具栏Rotate3D按钮(带箭头的圆圈),选中坐标轴,调整为理想角度; (7)加箭头线: 按工具栏InsertArrow按钮(指向左上方的箭头),从原点拉出三根坐标线,并双击编辑加粗; (8)加文本: 按工具栏InsertText按钮(字母A),在适当位置写X,Y,Z,设置字体和大小; (9)用命令axisoff使原坐标轴不显示. 但图形窗口对象编辑工具并没有给出所有设置,更详细的设置可用菜单Edit/...property完成. 七、程序设计 1、控制流 到目前为止,我们用的命令都是顺序结构的,对于复杂的计算,需要循环和分支结构. 例计算s= »clear。 s=0。 »forn=1: 100 s=s+1/n/n。 end »s s= 1.6350 常用控制流语句有 for循环变量=初值: 增量: 终值,语句;end while(条件式),语句;end if(条件式),语句。 end if(条件式1),语句1。 elseif(条件式2),语句2。 ……。 else,语句。 end switch(分支变量)case(值1),语句1。 case(值2),语句2。 ……。 otherwise语句。 end 另外还有break(中断循环),return(中断执行返回)等. 2、M脚本文件 从工具栏的NewFile按钮或在File/New菜单选M-file就进入MATLAB的编辑器Editer,用以编写用户的M文件.M文件可分为两类: M脚本文件和M函数文件.将多条MATLAB语句写在编辑器中保存在适当的目录中(这个目录须在MATLAB搜索路径中),就得到一个M脚本.如我们将下面几条语句写在编辑器中, clear。 s=0。 forn=1: 100 s=s+1/n/n。 end s 保存为eg0_4(不要加扩展名m),然后在命令窗口执行 »eg0_4 s= 1.6350 使用编辑器也可打开和修改M文件,观察变量值,调试程序等.但要注意: 每次修改程序后都要存盘. 3、函数文件 M函数文件以function开头,格式为 function输出变量=函数名(输入变量) 语句; 在MATLAB中,使用M函数是以该函数的磁盘文件主名调用,而不是function中的函数名,但我们建议二者用同名.M函数与M脚本有两个重要区别: 第一,M函数一般有输入输出变量;第二,M函数中所有变量为局部变量,而脚本文件中所有变量都存在于命令窗口,即全程变量.例如,写函数文件 M函数eg0_4f.m functions=f(m) s=0。 forn=1: m s=s+1/n/n。 end 保存为eg0_4f.m,在命令窗口执行 »clear。 eg0_4f(100),eg0_4f(1000) ans= 1.6350 ans= 1.6439 »s ? ? ? Undefinedfunctionorvariables.%说明s不是命令窗口的变量 *4、编程几点高级事项 input提示输入 disp强行显示 num2str数值转字符串 str2num字符串转数值 int2str整数转字符串 mat2str矩阵转字符串 char按ASCII码转换 strcmp字符串比较 eval执行命令 feval执行函数 keyboard键盘指令 pause延时 warning显示警告 error显示错误并中断 nargin函数的输入变量个数 nargout输出变量个 (1)注释: 注释语句注释用%开头,对本行后面字符起作用,注释语句不参与运算,起说明作用,增强程序的可读性,一个好的M文件开头应有一段注释,说明功能和使用方法,这部分注释使用 help文件主名 可看到.注释符%也常用于程序调试. (2)提示输入: input和disp是一组输入输出语句,例如编写下列脚本文件finddet.m,使对键盘输入的方阵求得行列式. 文件finddet.m clearA。 A=input('Enterasquarematrix: ')。 d=det(A)。 disp(['Itsdeterminantis',num2str(d)])。 这里num2str是将数转换为字符串.现在运行 »finddet Enterasquarematrix: (请你输入方阵,如[12。 34]) Itsdeterminantis–2 (4)子函数: M函数中允许使用子函数.M函数中第一个function为主函数,其它function为子函数. (5)全程变量: M文件间变量值传递除使用参量外还有一种方式: 定义global(全程变量),它的意义与通常全程变量稍有区别,只对有定义的文件起作用. (6)数组化编程: MATLAB是数组化程序语言,好的M文件应尽量使用内部函数(包括关系与逻辑函数any,all,find等),少用循环语句,提高运算速度.如例4写成下列形式运算较快. M函数eg0_4f.m的改进 functions=f(m) n=1: m。 s=sum(1./n.^2);%sum表示向量的和 (7)预分配: 尽管MATLAB数组无须定义大小,但经常改变数组大小会影响速度,采取一些预分配方法可提高运算速度.如 较差的程序 v (1)=2。 fori=2: 100 v(i)=v(i-1)^0.5。 end 较好的程序 v=2*ones(1,100)。 fori=2: 100 v(i)=v(I-1)^0.5。 end (8)与C/C++及FORTRAN的接口: MATLAB提供了API函数将C/C++或FORTRAN程序转化为在MATLAB中运行的MEX文件,也可用Complier从M函数生成C/C++代码或可执行文件. *例分段函数图 clear。 close。 xa=-2: 0.1: 2。 ya=-2: 0.1: 2。 [x,y]=meshgrid(xa,ya)。 z=zeros(size(x))。 %预处理可加快速度 k1=find(x+y>1)。 %k1返回符合x+y>1的数组编址(单下标) z(k1)=0.5457*exp(-0.75*y(k1).^2-3.75*x(k1).^2-1.5*x(k1))。 k2=find(x+y<=1&x+y>-1)。 z(k2)=0.7575*exp(-y(k2).^2-6*x(k2).^2)。 k3=find(x+y<-1)。 z(k3)=0.5457*exp(-0.75*y(k3).^2-3.75*x(k3).^2+1.5*x(k3))。 mesh(x,y,z)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上机 材料 MATLAB 语言 绘图 程序设计