MATLAB及程序设计-MATLAB与物理学.ppt

上传人:小飞机 文档编号:5438981 上传时间:2023-07-07 格式:PPT 页数:221 大小:1.74MB
返回 下载 相关 举报
MATLAB及程序设计-MATLAB与物理学.ppt_第1页
第1页 / 共221页
MATLAB及程序设计-MATLAB与物理学.ppt_第2页
第2页 / 共221页
MATLAB及程序设计-MATLAB与物理学.ppt_第3页
第3页 / 共221页
MATLAB及程序设计-MATLAB与物理学.ppt_第4页
第4页 / 共221页
MATLAB及程序设计-MATLAB与物理学.ppt_第5页
第5页 / 共221页
点击查看更多>>
资源描述

《MATLAB及程序设计-MATLAB与物理学.ppt》由会员分享,可在线阅读,更多相关《MATLAB及程序设计-MATLAB与物理学.ppt(221页珍藏版)》请在三一办公上搜索。

1、MATLAB及程序设计-MATLAB与物理学,主讲教师:顾菊观教授 理学院 2321169(661642),MATLAB及程序设计-MATLAB与物理学课程介绍,定位:选修课目标:了解MATLAB,能够熟练掌握在数学和物理学的应用,简单计算及编程,简单的数据处理及基本图形绘制.,教材:MATLAB及其在理工课程中的应用指南(陈怀琛)特点:完全不必具备其它语言的基础,各年级各专业的同学都可选修。,MATLAB课程安排,教学学时:36学时(基于matlab7.1版本).教学安排:讲课16学时,上机18学时,考试2学时.考核要求:不得缺勤,实验报告必须交齐。平时占20%,专项练习30%,期末考查占5

2、0%。考核方式:考查,第一章 MATLAB语言概述,一、MATLAB语言的发展 matlab语言是由美国的Clever Moler博士于1980年开发的,美国Mathworks公司于是984年正式推出。设计者的初衷是为解决“线性代数”课程的矩阵运算问题。取名MATLAB即Matrix Laboratory 矩阵实验室的意思。,它将一个优秀软件的易用性与可靠性、通用性与专业性、一般目的应用与高深的科学技术应用有机的相结合。MATLAB是一种直译式的高级语言,比其它程序设计语言容易。,MATLAB语言与其它语言的关系仿佛和C语言与汇编语言的关系一样。,计算机语言的发展:,标志着计算机语言向“智能化

3、”方向发展,被称为第四代编程语言。,MATLAB已经不仅仅是一个“矩阵实验室”了,它集科学计算、图象处理、声音处理于一身,并提供了丰富的Windows图形界面设计方法。MATLAB语言是功能强大的计算机高级语言,它以超群的风格与性能风靡全世界,成功地应用于各工程学科的研究领域。,MATLAB在美国已经作为大学理工科学生必修的计算机语言之一(C,FORTRAN,ASSEMBLER,MATLAB)。近年来,MATLAB语言已在我国推广使用,现在已应用于各学科研究部门和许多高等院校。MATLAB语言不受计算机硬件的影响,286以上的计算机都可以使用。,二、matlab能在各领域做什么 工业研究与开发

4、 数学教学,特别是线性代数 数值分析和科学计算方面的教学与研究 电子学、控制理论和物理学等工程和科学 学科方面的教学与研究 经济学、化学和生物学等计算问题的所有其他领域中的教学与研究,例、用一个简单命令求解线性系统 3x1+x2-x3=3.6 x1+2x2+4x3=2.1-x1+4x2+5x3=-1.4A=3 1-1;1 2 4;-1 4 5;b=3.6;2.1;-1.4;x=Abx=1.4818-0.4606 0.3848,对于线性系统有A*x=b,例、用简短命令计算并绘制在0 x6范围内的sin(2x)、sinx2、sin2x。x=linspace(0,6)y1=sin(2*x),y2=s

5、in(x.2),y3=(sin(x).2;plot(x,y1,x,y2,x,y3),三、MATLAB语言的特点1、起点高2、人机界面适合科技人员3、强大而容易的作图功能4、智能化程度高5、功能丰富,可扩展性强,四、MATLAB语言的功能:1、强大的数值(矩阵)运算功能2、广泛的符号运算功能3、高级与低级兼备的图形功能(计算结果的可视化功能)4、可靠的容错功能5、应用灵活的兼容与接口功能6、信息量丰富的联机检索功能,五、MATLAB的工作环境,1、命令窗由工作空间:Workspace,历史命令Command History,当前目录Current Directory 命令窗Command Win

6、dows。命令窗是用户与MATLAB进行人机对话的主要环境。,台式电脑:按PrtSc键手提电脑:按住fn键,再按prt sc键,pians=3.1416 format pians=3.1416 format long pians=format short e pians=3.1416e+000,format long e pians=format hex pians=400921fb54442d18 format bank pians=3.14 format+pians=+,Format命令的应用:,format rat pians=355/113 format short pi ans=3.

7、1416,Help命令的应用:,help format FORMAT Set output format.FORMAT with no inputs sets the output format to the default appropriate for the class of the variable.For float variables,the default is FORMAT SHORT.FORMAT does not affect how MATLAB computations are done.Computations on float variables,namely si

8、ngle or double,are done in appropriate floating point precision,no matter how those variables are displayed.Computations on integer variables are done natively in integer.Integer variables are always displayed to the appropriate number of digits for the class,for example,3 digits to display the INT8

9、 range-128:127.FORMAT SHORT and LONG do not affect the display of integer variables.。,退出MATLAB:1、fileExit matlab2、在命令窗口中键入exit或 quit3、单击命令窗右上角,图形窗:logo文本编辑窗:filenewM-file,六、演示程序命令窗中键入:demo可以通过演示程序,模仿编辑相关程序。,第二章 基本语法,2.1 变量及其赋值2.2 矩阵的初等运算 2.3 元素群运算 2.4 逻辑判断与流程控制2.5 基本绘图方法2.6 M文件及程序调试,2.1变量及其赋值,(1)标识符

10、与数(2)矩阵及其元素的赋值(3)复数(4)变量检查(5)基本赋值矩阵,一、标识符与数,标识符:标识符是标志变量名、常量名、函数名和文件名的字符串的总称。MATLAB中的标识符最长允许19个字符,合法字符是52个英文字母(大小写看成不同字符)、10个数字和下划线。第一个字符必须是英文字母.,MATLAB中的数,MATLAB中的实数只有一种数据格式,那就是双精度(即64位二进制或8个字节),它的有效值是十进制16位,动态范围是10的308次幂。2.225110 3081.797710+308 数的存储和运算全按同一格式进行,使编程简单,减少差错,改善人机交互,付出代价是内存空间和运行速度,形成M

11、ATLAB的一大特色。,数的八种显示格式,二、矩阵及其元素的赋值,格式1:变量表达式(或常量)格式2:表达式表达式中的运算符有:加(+)、减(-)、乘(*)、左除()、右除(/)、指数()、共軛转置()、矩阵()等。表达式的结尾标点:若为分号;,不显示;若为逗号,或直接回车,显示运算结果。,矩阵的输入方法:(1)直接输入 A=1 2 3;4 5 6;6 7 8A=1 2 3 4 5 6 6 7 8 A=1 2 3;4 5 6;6 7 8;A=1,2,3;4,5,6;6,7,8A=1 2 3 4 5 6 6 7 8,A=1 2 33 4 5 6 7 8A=1 2 3 3 4 5 6 7 8,(2

12、)冒号表达式生成向量基本格式 A=1:5;6:10;11:15A=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 B=1:0.1:2;5:0.1:6B=1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000 5.0000 5.1000 5.2000 5.3000 5.4000 5.5000 5.6000 5.7000 5.8000 5.9000 6.0000,(3)线性等分向量生成 y=linspace(x1,x2)生成100维行向量 y=linspace(x1,x2,n)

13、生成n维行向量,a=linspace(1,100,6)a=1.0000 20.8000 40.6000 60.4000 80.2000 100.0000,(4)对数等分向量生成 y=logspace(x1,x2)生成50维对数等分向量,y=logspace(x1,x2,n)生成n维对数等分向量,a=logspace(0,5,6)a=1 10 100 1000 10000 100000,(5)随机数产生矩阵rand(m,n)产生 维,区间在0,1之间均匀分布的随机数,其均值为0.5.randn(m,n)产生 维,均值为0标准差为1的正态分布.A=rand(1,6)A=0.9501 0.2311

14、0.6068 0.4860 0.8913 0.7621 B=rand(2,5)B=0.4565 0.8214 0.6154 0.9218 0.1763 0.0185 0.4447 0.7919 0.7382 0.4057 C=randn(3,6)C=-0.4326 0.2877 1.1892 0.1746-0.5883 0.1139-1.6656-1.1465-0.0376-0.1867 2.1832 1.0668 0.1253 1.1909 0.3273 0.7258-0.1364 0.0593,单位矩阵:eye(m,n);eye(m)零 矩 阵:zeros(m,n);zeros(m)一 矩

15、 阵:ones(m,n);ones(m)对角矩阵:对角元素向量 V=a1,a2,an A=diag(V)随机矩阵:rand(m,n)产生一个mn的均匀分别的随机 矩阵,(6)常用的特殊矩阵,如果已知A为方阵,则V=diag(A)可以提取A的对角元素构成向量V。,eye(2,3)ans=1 0 0 0 1 0zeros(2,3)ans=0 0 0 0 0 0ones(2,3)ans=1 1 1 1 1 1V=5 7 2;A=diag(V)A=5 0 0 0 7 0 0 0 2,eye(2)ans=1 0 0 1zeros(2)ans=0 0 0 0ones(2)ans=1 1 1 1,compa

16、n 友矩阵函数 magic 魔方矩阵 hankel Hankel矩阵 rosser 对称特征值测试矩阵 hilb Hilbert矩阵 pascal Pascal矩阵 invhilb 反Hilbert矩阵 vander 范德蒙矩阵,(7)其他特殊矩阵,零矩阵:所有元素值为零的矩阵称为零矩阵。零矩阵可以用zeros函数实现。zeros是MATLAB内部函数,使用格式如下:zeros(m):产生m*m阶零矩阵;zeros(m,n):产生m*n阶零矩阵,当m=n时等同 于zeros(m);zeros(size(A):产生与矩阵A同样大小的零矩阵。,(8)特殊矩阵的实现,常见的特殊矩阵有零矩阵、幺矩阵、

17、单位矩阵、三角形矩阵等,这类特殊矩阵在线性代数中具有通用性;还有一类特殊矩阵在专门学科中有用,如有名的希尔伯特(Hilbert)矩阵、范德蒙(Vandermonde)矩阵等。,空矩阵在MATLAB里,把行数、列数为零的矩阵定义为空矩阵。空矩阵在数学意义上讲是空的,但在MATLAB里确是很有用的。例如 A=0.1 0.2 0.3;0.4 0.5 0.6;B=find(A1.0)B=这里 是空矩阵的符号,B=find(A1.0)表示列出矩阵A中值大于1.0的元素的序号。当不能满足括号中的条件时,返回空矩阵。另外,也可以将空矩阵赋给一个变量,如:B=,三、复数,虚数符号MATLAB启动时定为i,j,

18、可以不用乘号,连写在数字后面。如果用户在程序中另外給i,j赋值,则它们的虚数意义就失效。conj(x)表示共軛,即把x的虚部反号。是共軛转置运算符,对实矩阵把行号与列号交换,对复矩阵除行列交换外,还要把矩阵元素取共軛。,A=3+5.5iA=3.0000+5.5000i B=5+0.332jB=5.0000+0.3320i C=1+2i,3+4i;5+6i,7+8iC=1.0000+2.0000i 3.0000+4.0000i 5.0000+6.0000i 7.0000+8.0000i,D=1,2;5 7+2 4;6 8*iD=1.0000+2.0000i 2.0000+4.0000i 5.00

19、00+6.0000i 7.0000+8.0000i F=sqrt(2+3i)F=1.6741+0.8960i F*Fans=2.0000+3.0000i,四、变量检查,变量检查命令who,whos打开工作空间视窗在检查中不显示内部变量eps,realmax,realmin,pii,j,inf,NaN,x=-2*pi:0.02:2*pi;y=sin(x).*cos(x)+sin(3*x).*cos(x).2;plot(x,y)whoYour variables are:x y whos Name Size Bytes Class x 1x629 5032 double array y 1x629

20、 5032 double arrayGrand total is 1258 elements using 10064 bytes,五、特殊矩阵赋值函数(表2-1),矩阵组合与显示,大矩阵可由若干个小矩阵组成,但必须其行列数正确,恰好填满全部元素。一个矩阵中所有元素用同一显示格式。有一个是小数则都用小数;当矩阵中的最大元素小于0.001,或其最小元素大于1000时,MATLAB会把其公因子提出来。元素大小差别很大时,不宜用矩阵显示。,2.2 矩阵的初等运算,(1)矩阵数值的表示方法(前面已讲);(2)矩阵的加减乘法;(3)矩阵的除法和线性方程解;(4)矩阵的乘方和超越函数;,一、矩阵的加减法,两

21、矩阵进行加减的条件是其行数和列数相同,简称阶次相同,矩阵的加减即其对应元素的加减。size(A)=size(B)如果其中一个变量是标量,则会自动扩展成各元素均取此标量值的同阶次矩阵。,A=rand(2,3)A=0.9355 0.4103 0.0579 0.9169 0.8936 0.3529 B=rand(5,6)B=0.8132 0.6038 0.4451 0.5252 0.6813 0.4289 0.0099 0.2722 0.9318 0.2026 0.3795 0.3046 0.1389 0.1988 0.4660 0.6721 0.8318 0.1897 0.2028 0.0153

22、0.4186 0.8381 0.5028 0.1934 0.1987 0.7468 0.8462 0.0196 0.7095 0.6822 size(A)ans=2 3 size(B)ans=5 6,A=1 2;3 4A=1 2 3 4 B=5 6;7 8B=5 6 7 8 C=A+BC=6 8 10 12 D=A-BD=-4-4-4-4,二、矩阵的乘法,c(i,j)=a(i,1)*b(1,j)+a(i,2)*b(2,j)+a(i,p)*b(p,j)=pa(i,k)*b(k,j),矩阵的乘法,两矩阵相乘C=A*B的条件是A的列数等于B的行数,简称内阶数相同。设矩阵A 为np阶,矩阵B为pm阶,

23、则C是nm阶。内阶数不同的矩阵不能相乘。不符合交换律:A*BB*A,左乘不等于右乘;若一个变量是标量,则按标量乘法。,A=1 2;3 4A=1 2 3 4 B=5 6;7 8B=5 6 7 8 C=A*BC=19 22 43 50 D=B*AD=23 34 31 46,A=1 2;3 4;5 6%3行2列A=1 2 3 4 5 6 B=1 2 3 4;5 6 7 8%2行4列B=1 2 3 4 5 6 7 8 C=A*B%3行4列C=11 14 17 20 23 30 37 44 35 46 57 6 CC=B*A%矩阵的内阶数不同不能相乘?Error using=mtimesInner ma

24、trix dimensions must agree.,三、矩阵除法,线性方程组D*X=B,如果D非奇异,即它的逆矩阵inv(D)存在;则其解用MATLAB表为:X=inv(D)*B=DB符号称为左除,即分母放在左边。左除的条件:B的行数等于D的阶数(D的行数和列数相同,简称阶数),D=1 2 3;4 5 6;7 8 9D=1 2 3 4 5 6 7 8 9 B=1 2;3 4;5 6B=1 2 3 4 5 6 DBans=-0.1410-0.4671 1.2821 0.9342-0.4744 0.1996,四、矩阵右除,若方程组表为为X*D1=B1,D1非奇异,即它的逆阵inv(D1)存在。

25、则其解为X=B1*inv(D1)=B1/D1符号/称为右除。右除的条件:B1的列数等于D的阶数(D的行数和列数相同,简称阶数),D=1 2 3;4 5 6;7 8 9D=1 2 3 4 5 6 7 8 9 B=1 2 3;4 5 6B=1 2 3 4 5 6 D/Bans=1.0000 0.0000-0.0000 1.0000-1.0000 2.0000,五、线性方程组表为矩阵相乘,x1+2 x2+3 x3=2 3 x1-5 x2+4 x3=07 x1+8 x2+9 x3=2可以表为故有 X=x1;x2;x3=Ab,A=1 2 3;3-5 4;7 8 9;b=2;0;-2;x=Abx=-1.9

26、608-0.0784 1.3725,六、用矩阵除法解线性方程组,解方程组 6 x1+3 x2+4 x3=3-2 x1+5 x2+7 x3=-4 8 x1-4 x2-3 x3=-7的程序为:A=6,3,4;-2,5,7;8,-4,-3;B=3;-4;-7;X=AB,X=0.6000 7.0000-5.4000,七、矩阵整体的幂次运算,MATLAB的乘幂函数”、指数函数expm、对数函数logm、和开方函数sqrtm是对矩阵进行的,另外,还有矩阵乘法和除法也是把矩阵作为一个整体来运算。除此之外,其他MATLAB函数都是对矩阵中的元素分别进行.,C=1,2;3 4C=1 2 3 4 C2ans=7

27、10 15 22 expm(C)ans=51.9690 74.7366 112.1048 164.0738 logm(C)ns=-0.3504+2.3911i 0.9294-1.0938i 1.3940-1.6406i 1.0436+0.7505i sqrtm(C)ans=0.5537+0.4644i 0.8070-0.2124i 1.2104-0.3186i 1.7641+0.1458i,C.2ans=1 4 9 16 exp(C)ans=2.7183 7.3891 20.0855 54.5982 log(C)ans=0 0.6931 1.0986 1.3863 sqrt(C)ans=1.0

28、000 1.4142 1.7321 2.0000,2.3 元素群运算,数组及其赋值 元素群的四则运算 元素群的幂次运算 元素群的函数元素群运算能大大简化编程,提高运算的效率,是MATLAB优于其他许多语言的一个特色。,MATLAB的矩阵和数组运算,矩阵和数组是MATLAB中的基本单位,矩阵运算,数组运算,+加-减*乘 幂 左除/右除 转置,.+加.-减.*乘.幂.左除./右除.转置,以矩阵运算法则进行运算,以相应位置元素进行运算,一、数组及其赋值,数组通常是指单行或单列的矩阵,也称为向量。其赋值方法:(1)x=初值:增量:终值(2)线性分割函数 x=linspace(起点,终点,点数)(3)对

29、数分割函数logspace(起点对数,终点对数,点数),二、元素群的四则和幂次运算,元素群运算:就是把两矩阵按逐个元素进行运算。为了与矩阵作为整体的运算符号相区别,要在运算符“*、”前加一点符号“”。元素群运算的英文原文是数组运算(Array Algorithm),实际上它适用于任何阶的矩阵,故取名元素群运算更为确切。,三、元素群的函数运算,所有的MATLAB函数都适用于作元素群运算,只有专门说明的几个除外。就是*、/、运算符和sqrtm、expm、logm三个函数。实例,做一个三角函数表:x=0:0.1:pi/4;x,sin(x),cos(x),tan(x),x=0:0.1:pi/4;dis

30、p(x sin(x)cos(x)tan(x)x,sin(x),cos(x),tan(x)x sin(x)cos(x)tan(x)ans=0 0 1.0000 0 0.1000 0.0998 0.9950 0.1003 0.2000 0.1987 0.9801 0.2027 0.3000 0.2955 0.9553 0.3093 0.4000 0.3894 0.9211 0.4228 0.5000 0.4794 0.8776 0.5463 0.6000 0.5646 0.8253 0.6841 0.7000 0.6442 0.7648 0.8423,disp(x,sin(x),cos(x),ta

31、n(x)0 0 1.0000 0 0.1000 0.0998 0.9950 0.1003 0.2000 0.1987 0.9801 0.2027 0.3000 0.2955 0.9553 0.3093 0.4000 0.3894 0.9211 0.4228 0.5000 0.4794 0.8776 0.5463 0.6000 0.5646 0.8253 0.6841 0.7000 0.6442 0.7648 0.8423 disp(x sin(x)cos(x)tan(x)0 0 1.0000 0 0.1000 0.0998 0.9950 0.1003 0.2000 0.1987 0.9801

32、0.2027 0.3000 0.2955 0.9553 0.3093 0.4000 0.3894 0.9211 0.4228 0.5000 0.4794 0.8776 0.5463 0.6000 0.5646 0.8253 0.6841 0.7000 0.6442 0.7648 0.8423,关系与逻辑运算,关系运算符,逻辑运算符,=,&与|或 非 xor异或,函数,all(x)检查列向量中元素是否全为非零any(x)检查列向量中有无非零元素,2.4 逻辑判断及流程控制,小于 大于 小于等于 大于等于 等于 不等于,关系运算例子:A=2+3=4A=0 A=2+3=5A=1 A=2+3=5A=1

33、 A=2+3=9A=1,逻辑运算例子:A=1;B=0;A&Bans=0 A|Bans=1 Aans=0 xor(A,B)ans=1,A=1 1 0;1 1 1;0 0 0;0 1 0A=1 1 0 1 1 1 0 0 0 0 1 0 all(A)ans=0 0 0 any(A)ans=1 1 1,流程控制语句,if A1%表达式1 B1%命令1 elseif A2%表达式2 B2%命令2 else B3%命令3 end,If 语句,例:计算下列函数的值,expif.mclear%清除变量x=input(请输入一个值x=)%任意输入一个值if x=1&x10%判断条件2是否满足y=2*x-1,%

34、满足条件2的结果else%其他情况,即条件3 y=3*x-11,%满足条件3的结果end%程序结束,请输入一个值x=-9x=-9y=-9,保存文件yx.mfunction y=yx(x);if x1&x10 y=2*x-1,else y=3*x-11,end,主窗口中输入:yx(5)y=9ans=9 yx(8);y=15,switch 语句,switch a%读入一个语句case A1%情形1 B1%命令1case A2%情形2 B2%命令2case otherwise Bn%最后一个命令,判断输入数n的奇、偶、空的程序:clear%switchm.mn=input(n=);switch mo

35、d(n,2)case 1 A=奇 case 0 A=偶 otherwise A=空end,n=13A=奇n=46A=偶n=45.6A=空,try 语句组1catch 语句组2end,try语句,try语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。,循环结构,for 语句,for 变量=表达式命令1命令2 end,while 语句,for 用于循环次数已知,while 表达式 命令end,while 用于循环次数未知,break 语句用来跳出循环,继续执行循环语句的下一语句。,continue语句跳过循环体中所有剩下的语

36、句,继续下一次循环。,计算阶乘的程序(prdn.m):clearprd=1;%放置乘积的变量,且设置初值为1n=10;%设置循环的次数for k=1:n%循环语句prd=prd*k;%计算阶乘endprd%输出结果主窗口输出结果:prd=3628800,也可用factorial(n)来计算:factorial(10)ans=3628800,求和的程序(一):求1到20 的阶乘和clear%sumn.msum=0;for i=1:20 prd=1;for k=1:i prd=prd*k;end sum=sum+prd;endSum主窗口输出结果:sum=2.5613e+018,求和的程序(二):

37、求1到100的和clear%sumw.msum=0;i=1;while i=100 sum=sum+i;i=i+1;endsum主窗口输出结果:sum=5050,例:小猴吃桃问题。设第k天的桃子数为,则桃子数的变化规律为:,给定k,,可算出第一天的桃子数。,p(10)=1;for k=10:-1:2;p(k-1)=2*(p(k)+1);endp(1)ans=1534,例:小猴吃桃问题。设第k天的桃子数为,则桃子数的变化规律为:,给定k,,可算出第一天的桃子数。,p(10)=1;for k=10:-1:2;p(k-1)=2*(p(k)+1);endp(1)ans=1534,例-平面简谐波:x=-

38、0.25:0.001:0.25;%设定x的取值范围for i=0:2%用循环语句令i分别取0,1,2t=0.0025*i;y=0.002*cos(pi*5*x-200*pi*t);%此为时刻t的波函数if i=0;%用选择语句分别用不同的颜色线型画不同时刻的波形图plot(x,y,k-)%用黑色实线画t=0时刻的波形图hold on%保存图形的命令,否则后一幅图会覆盖前一幅grid on%绘制网格elseif i=1;plot(x,y,r-)%用红色虚线画t=0.0025时刻的波形图elseif i=2;plot(x,y,b-.)%用蓝色虚点线画t=0.005时刻的波形图 end%结束if语句

39、end%结束for语句,2.5基本绘图方法,直角坐标中的两维曲线多条曲线的绘制其他坐标二维绘图屏幕控制三维曲线和曲面,一、直角坐标中的两维曲线,(一)plot 最基本的二维图形指令plot命令的基本格式plot(Y)=plot(n,Y)plot(t,Y)plot(t,Y,:w)最后一个变元前一个符号为线型(点型)后一个字母表示颜色,线型、点型和颜色,1.单窗口单曲线绘图例1:x=0,0.48,0.84,1,0.91,0.6,0.14 x1,x2,x3,x4,x5,x6,x7,plot(x),例如:x=-10:0.01:10;y=sin(3*x)+cos(5*x);plot(x,y,-r),x=

40、-10:0.01:10;y=sin(3*x)+cos(5*x);plot(x,y,-r,linewidth,2)xlabel(x)ylabel(y),x=-10:0.01:10;y=sin(3*x)+cos(5*x);plot(x,y,-r,linewidth,2)xlabel(fontsize14x),ylabel(fontsize14y),在图片窗口中双击坐标,可改变坐标字体的大小.,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),例 3:t=0:pi/100:2*

41、pi;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,t,y1,t,y2,t,y3,t,y4,t,y5),例4:(1)x=peaks;plot(x)(2)x=1:length(peaks);y=peaks;plot(x,y)图形是一样的.,3.单窗口多曲线分图绘图,subplot 子图分割命令调用格式:subplot(m,n,p)按从左至右,从上至下排列,行,列,绘图序号,t=0:pi/100:2*pi;y=sin(t);y2=sin(t+0.5);y3=cos(t);s

42、ubplot(1,3,1);plot(t,y)subplot(1,3,2);plot(t,y3)subplot(1,3,3);plot(t,y2),t=0:pi/100:2*pi;y=sin(t);y2=sin(t+0.5);y3=cos(t);subplot(3,1,1);plot(t,y)subplot(3,1,2);plot(t,y3)subplot(3,1,3);plot(t,y2),t=0:pi/100:2*pi;y=sin(t);y2=sin(t+0.5);y3=cos(t);subplot(2,2,1);plot(t,y)Subplot(2,2,2);plot(t,y3)subp

43、lot(2,1,2);plot(t,y2),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)%在第三窗口绘图,图1 图2 图3,5.可任意设置颜色与线型,例 5:t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y,r-,t,y1,g:,t,y2,b*),6.图形加注功能

44、,将标题、坐标轴标记、网格线及文字注释加注到图形上,这些函数为:title 给图形加标题 xlable 给x轴加标注 ylable 给y轴加标注 text 在图形指定位置加标注 gtext 将标注加到图形任意位置 grid on(off)打开、关闭坐标网格线 legend 添加图例 axis 控制坐标轴的刻度,例:t=0:0.1:10y1=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(时

45、间t),ylabel(正弦、余弦)gridaxis square,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,li

46、ms)只返回绘图点的值,而不绘图。用plot(x,y)来绘图。,例6:fplot(sin(x),tan(x),cos(x),2*pi*-1 1-1 1)例7: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)指定绘图窗口绘图。,例9:ezplot(sin(x)例10:ezplot(sin(x),cos(y),-4*pi 4*

47、pi,figure(2),(二)fill 基本二维绘图函数 fill的功能:绘制二维多边形并填充颜色例11:x=1 2 3 4 5;y=4 1 5 1 4;fill(x,y,r),(三)特殊二维绘图函数,bar 绘制直方图 polar 绘制极坐标图 hist 绘制统计直方图 stairs 绘制阶梯图 stem 绘制火柴杆图 rose 绘制统计扇形图 comet 绘制彗星曲线,errorbar 绘制误差棒图 compass 复数向量图(罗盘图)feather 复数向量投影图(羽毛图)quiver 向量场图 area 区域图 pie 饼图 convhull 凸壳图 scatter 离散点图,例12

48、:绘制阶梯曲线x=0:pi/20:2*pi;y=sin(x);stairs(x,y),例13:阶梯绘图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(o

49、ff)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:8subplot(8,1,i);stairs(t,h8(i,:)axis(off)end,例14:绘制极坐标绘图t=0:2*pi/90:2*pi;y=cos(4*t);polar(t,y),例15:绘制火柴杆绘图 t=0:0.2:2*pi

50、;y=cos(t);stem(y),例16:绘制直方图 t=0:0.2:2*pi;y=cos(t);bar(y),例17:绘制彗星曲线图 t=-pi:pi/500:pi;y=tan(sin(t)-sin(tan(t);comet(t,y),区域图,例18:x=magic(6);area(x),饼图,例19:x=1 3 0.5 2.5 2;y=0 1 0 0 0;pie(x,y),饼图,例20:x=1 3 0.5 2.5 2;y=0 1 0 0 0;pie3(x,y),pie(2 4 3 5,North,South,East,West),先输入:load seamount 再输入:scatter

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号