1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,MATLAB,编程入门,1,目 录,第,1,章,MATLAB,简介,第,2,章,MATLAB,基本语法,2.1,变量及其赋值,2.2,矩阵的初等运算,2.3,元素群运算,2.4,逻辑判断及流程控制,2.5,基本绘图方法,2.6 M,文件及程序调试,第,3,章,MATLAB,在电路中的应用,3.1,电阻电路,3.2,动态电路,3.3,正弦稳态电路,3.4,频率响应,3.5,二端口电路,2,第一章,MATLAB,简介,MATLAB(MATrix LABoratory,即矩阵实验室,),是,MathWork,公司
2、推出的一套高效率的数值计算和可视化软件。,MATLAB,是当今科学界最具影响力、也是最具活力的软件,它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。,它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。,MATLAB,语言有如下优点:,1.,编程简单使用方便,MATLAB,的基本数据单元是既不需要指定维数、也不需要说明数据类型的矩阵,而且数学表达式和运算规则与通常的习惯相同。因此,在,MATLAB,环境下,数组的操作与数的操作一样简单。,MATLAB,的矩阵和向量操作功能是其他语言无法比拟的。,3,2.,函数库可任意扩充,由于,M
3、ATLAB,语言库函数与用户文件的形式相同,所以用户文件可以像库函数一样随意调用。所以用户可根据自己的需要任意扩充函数库。,3.,语言简单内涵丰富,MATLAB,语言中最重要的成分是函数,其一般形式为:,Function a,b,c=fun(d,e,f),fun,是自定义的函数名,只要不与库函数名相重,并且符合字符串的书写规则即可。这里的函数既可以是数学上的函数,也可以是程序块或子程序,内涵十分丰富。每个函数建立一个同名的,M,文件,如上述函数的文件名为,fun.m,。这种文件简单、短小、高效,并且便于调试。,4,4.,简便的绘图功能,MATLAB,具有二维和三维绘图功能,使用方法十分简便。而
4、且用户可以根据需要在坐标图上加标题。坐标轴标记。文本注释及栅格等,也可一指定图线形式,(,如实线、虚线等,),和颜色,也可以在同一张图上画不同函数的曲线,对于曲面图还可以画出等高线。,5.,丰富的工具箱,由于,MATLAB,的开放性,许多领域的专家都为,MATLAB,编写了各种程序工具箱。,这些工具箱提供了用户在特别应用领域所需的许多函数,这使得用户不必花大量的时间编写程序就可以直接调用这些函数,达到事半功倍的效果。,5,6,第二章,MATLAB,基本语法,2.1,变量及其赋值,(,1,)标识符与数,标识符是标识变量名、常量名、函数名和文件名的字符串的总称。标识符可以是英文字母、数字和下划线等
5、符号。标识符第,1,个字符必须是英文字母,,MATLAB,对大、小写敏感。,MATLAB,只有一种数据格式,双精度(即,64,位)二进制,对应于十进制,16,位有效数和,308,次幂。,7,(,2,)矩阵及其元素的赋值,变量,=,表达式(数),a=1 2 3;4 5 6;7 8 9,x=-1.3 sqrt(3)(1+2+3)/5*4,x(5)=abs(x(1),a(4,3)=6.5,a=,1.0000 2.0000 3.0000,4.0000 5.0000 6.0000,7.0000 8.0000 9.0000,0 0 6.5000,元素之间用逗号、空格分开。不同行以分号隔开。语句结尾用回车或
6、逗号,会显示结果,如果不想显示结果,用分号。,元素用()中的数字(下标)来注明,一维用一个下标,二维用两个下标,逗号分开。,a(5,:)=5,4,3,b=a(2,4,1,3),a(2,4,5,:)=,a/7,如果赋值元素的下标超过原来矩阵的大小,矩阵的行列会自动扩展。,全行赋值,用冒号。,提取交点元素;,抽取某行元素用空矩阵。,8,9,10,(,3,)复数,c=3+5.2i,z=1+2i,3+4i;5+6i,7+8i,z=1,3;5,7+2,4;6,8*i,f=sqrt(1+2i),f*f,复数的虚数部分用,i,或,j,表示,如曾用过,i,j,作变量,用,clear i,j,复数矩阵有两种赋值
7、方法:,将其元素逐个赋予复数;,将其实部和虚部矩阵分别赋值。,w=z,(共轭转置),u=conj(z),(共轭),v=conj(z),(转置),Z,复数矩阵共轭转置:行列互换,各元素的虚部反号。,函数,conj,(,z,)共轭:只把各元素的虚部反号。,转置,conj,(,z,):行列互换。,11,12,z=1.0000+2.0000i 3.0000+4.0000i,5.0000+6.0000i 7.0000+8.0000i,w=z,(共轭转置),w=1.0000-2.0000i 5.0000-6.0000i,3.0000-4.0000i 7.0000-8.0000i,u=conj(z),(共轭
8、u=1.0000-2.0000i 3.0000-4.0000i,5.0000-6.0000i 7.0000-8.0000i,v=conj(z),(转置),v=1.0000+2.0000i 5.0000+6.0000i,3.0000+4.0000i 7.0000+8.0000i,13,14,(,4,)变量检查,who,whos,inf,NaN,检查工作空间中的变量;,检查变量的详细特征,无穷大,1/0,;,非数(,Not a Number,),0/0 inf/inf 0*inf,。,系统不停止运算,结果仍为,inf,或,NaN,。,(,5,)基本赋值矩阵,f1=ones(3,2),f2=ze
9、ros(2,3),f3=magic(3),f4=eye(2),f5=linspace(0,1,5),fb1=f1,f3;f4,f2,fb2=fb1;f5,全,1,矩阵,全,0,矩阵,魔方矩阵:元素由,1,到,nn,的自然数组成,每行、每列及两对角线上的元素之和均等于,(n3+n)/2,。,单位矩阵是,nn,阶的方阵。对角线上元素为,1,。,线性分割函数,大矩阵可由小矩阵组成,其行列数必须正确,恰好填满全部元素。,15,f1=1 1,1 1,1 1,全,1,矩阵,f3=8 1 6,魔方矩阵,3 5 7,4 9 2,线性分割函数,f5=0 0.2500 0.5000 0.7500 1.0000,大
10、矩阵可由小矩阵组成,fb2=1.0000 1.0000 8.0000 1.0000 6.0000,1.0000 1.0000 3.0000 5.0000 7.0000,1.0000 1.0000 4.0000 9.0000 2.0000,1.0000 0 0 0 0,0 1.0000 0 0 0,0 0.2500 0.5000 0.7500 1.0000,f2=0 0 0,全,0,矩阵,0 0 0,f4=1 0,单位矩阵,0 1,fb1=1 1 8 1 6,1 1 3 5 7,1 1 4 9 2,1 0 0 0 0,0 1 0 0 0,fb1=f1,f3;f4,f2,fb2=fb1;f5,16
11、2.2,矩阵的初等运算(,1,)矩阵的加减乘法,i.,加、减法:相加减的两矩阵阶数必须相同,对应元素相加减。,n,m=size(fb2),x=-1 0 1;y=x-1,y=-2 -1 0,语句,size,检查矩阵阶数,两矩阵相加,阶数必须相同。,两相加减的矩阵中有一个是标量时,,MATLAB,将标量扩展成同等元素矩阵,与另一矩阵相加减。,17,pi*x,标量与矩阵相乘,不检查阶数,标量乘以矩阵的每一个元素。,x=-1 0 1;,X,与,y,内阶数不同,将,y,转置,y,。读作,x,左乘,y,。,y=-2-1 0;,x*y,ans=2,ans=2 0 -2,y*x,X,右乘,y,。,1 0 -
12、1,0 0 0,eye(3)*a,左、右乘结果不同,只有单位矩阵例外。,a*eye(3),单位矩阵乘以矩阵,A,,左、右乘结果仍等于该矩阵。,a=1 2 3 ans=1 2 3 ans=1 2 3,4 5 6 4 5 6 4 5 6,7 8 9 7 8 9 7 8 9,ii.,矩阵乘法,矩阵,A,np,阶与,矩阵,B,pm,阶的乘积,C,是,nm,阶矩阵。,P,是,A,阵的,列数,,,B,阵的,行数,,称为两个相乘矩阵的,内阶数,。,两矩阵相乘的必要条件是,内阶数相等,。,C(i,j)=kA(i,k)B(k,j),值为,A,阵第,i,行和,B,阵第,j,列对应元素乘积的和。,18,19,(,2
13、矩阵的除法及线性方程组的解,a=1 2 3,4 5 6,7 8 9,AV=I V=A,-1,V=inv(a)inv(a)*a,V=1.0e+016*,-0.4504 0.9007 -0.4504,0.9007 -1.8014 0.9007,-0.4504 0.9007 -0.4504,nn,阶方阵,A,和同阶的方阵,V,相乘,得出,n,阶单位矩阵,I,。,I,为,eye(n),。,V,是,A,的逆阵。,V,存在条件:,A,的行列式不等于,0,,,det(A)0,V=A,-1,MATLAB,内部函数,inv,,得出,A,的逆阵,V,。,D*X=B,inv(D)*D*X=inv(D)*B,in
14、v(D)*D=I,I*X=X,X=inv(D)*B=DB,X*D=B,X=B*inv(D)=B/D,D,与,B,行数相等,两端同时左乘以,inv(D),逆阵,单位阵,DB,为,D,左除,B,X=DB,,左除时阶数检查条件:两矩阵的行数必须相等。,未知矩阵在左,.D,的逆阵右乘以,B,,记作,/D,右除。,右除时阶数检查条件:两矩阵的列数必须相等。,20,a=1 2 3;3-5 4;7 8 9,x=x1,x2,x3,b=2;0;2,ax=b,x=ab a,左除,b,方程组,X,1,+2X,2,+3X,3,=2,3X,1,-5X,2,+4X,3,=0,7X,1,+8X,2,+9X,3,=2,可以表
15、示为,ax=b,21,a=1 2 3;4 5 6,b=2 4 0;1 3 5,d=1 4 7;8 5 2;3 6 0,运算:,a*b da,a*b,?Error using=*,Inner matrix dimensions must agree.,da,?Error using=,Matrix dimensions must agree.,a*b,ans=,6 16 20,9 23 25,12 30 30,a*b,ans=,10 22,28 49,da,ans=,-0.0370 0,0.5185 1.0000,-0.1481 0,a/d,ans=,0.4074 0.0741 0.0000,0
16、7407 0.4074 0.0000,22,解线性方程组,Ax=B,6x,1,+3x,2,+4x,3,=3,-2 x,1,+5 x,2,+7 x,3,=-4,8 x,1,-4 x,2,-3 x,3,=-7,A=6 3 4;-2 5 7;8-4-3,B=3;-4;-7,X=AB,A=6 3 4,-2 5 7,8 -4 -3,B=3,-4,-7,X=0.6000,7.0000,-5.4000,23,(,3,)矩阵的乘方和幂次函数,MATLAB,的运算符,*、,/,、,、,和,,指数函数,expm,、对数函数,logm,和开方函数,sqrtm,是对矩阵进行的,即把矩阵作为一个整体来运算。除此以外,
17、其他,MATLAB,函数都是对矩阵中的元素分别进行,英文直译为数组运算(,Array Operations,),译为“,元素群运算,”,S=1 2;3 4,D=1 4 7;8 5 2;3 6 0,D2,2.D,DS,幂次运算:矩阵为底数,指数是标量,同矩阵乘法一样,为保内阶数相同,底数的矩阵必须是方阵。矩阵是指数,底数是标量,矩阵也必须是方阵。底数和指数不能同时为矩阵。,按矩阵运算,等于,D*D,按元素群运算,非法运算,U1=sqrtm(S),U2=sqrt(S),V1=expm(S),V2=exp(S),Logm(D),Log(D),按矩阵运算,求平方根,可以用,U1*U1=S,验证,按元素
18、群运算,,U2*U2S,,,U2.U2=S,按矩阵运算,按元素群运算,按矩阵运算,按元素群运算,24,S=1 2,3 4,D=1 4 7,8 5 2,3 6 0,D2,ans=54 66 15,54 69 66,51 42 33,2.D ans=2 16 128,256 32 4,8 64 1,DS,?Error using=,At least one operand must be scalar.,V1=expm(S),V1=51.9690 74.7366,112.1048 164.0738,V2=exp(S),V2=2.7183 7.3891,20.0855 54.5982,U1=sqrt
19、m(S),U1=0.5537+0.4644i 0.8070-0.2124i,1.2104-0.3186i 1.7641+0.1458i,U2=sqrt(S),U2=1.0000 1.4142,1.7321 2.0000,Logm(D),ans=1.2447 -0.9170 2.8255,1.6044 2.5760 -1.9132,-0.7539 1.1372 1.6724,log(D),Warning:Log of zero.,ans=0 1.3863 1.9459,2.0794 1.6094 0.6931,1.0986 1.7918 -Inf,25,(,4,)矩阵结构形式的提取与变换,A=8
20、 1 6 0;3 5 7 1;4 9 2 2,B1=fliplr(A),B2=flipud(A),B3=reshape(A,2,6),提取矩阵中某些特殊结构的元素,,组成新的矩阵,改变矩阵结构。,fliplr,矩阵左右翻转,flipud,矩阵上下翻转,reshape,阶数重组(元素总数不变),B4=rot90(A),B5=diag(A),B6=tril(A),B7=triu(A),B8=A(:),rot90,矩阵整体反时针旋转,90,度,diag,提取或建立对角阵,tril,取矩阵的左下三角部分,triu,取矩阵的右上三角部分,将元素按列取出排成一列,26,A=,8 1 6 0,3 5 7 1
21、4 9 2 2,B1=fliplr(A),B1=,0 6 1 8,1 7 5 3,2 2 9 4,B2=flipud(A),B2=,4 9 2 2,3 5 7 1,8 1 6 0,B3=reshape(A,2,6),B3=,8 4 5 6 2 1,3 1 9 7 0 2,B4=rot90(A),B4=0 1 2,6 7 2,1 5 9,8 3 4,B5=diag(A),B5=8,5,2,B6=tril(A),B6=,8 0 0 0,3 5 0 0,4 9 2 0,B7=triu(A),B7=,8 1 6 0,0 5 7 1,0 0 2 2,B8=A(:),B8=8 3 4 1 5 9 6 7
22、 2 0 1 2,27,2.3,元素群运算(,1,)数组及其赋值数组是单行或单列的矩阵,一个,N,阶的数组可以表述为一个,N,组向量。,t=0:0.02:1,z=10:-3:-5,k=1:6,用两个冒号组成等增量语句,格式:,t=,初值:增量:终值,增量也可以设为负值,此时初值要比终值大,增量为,1,时,增量值可以省略。,t=0 0.0200 0.0400 0.0600 0.0800 0.1000 0.1200,0.1400 0.1600 0.1800 0.2000 0.2200 0.2400 0.2600,0.2800 0.3000 0.3200 0.3400 0.3600 0.3800 0
23、4000,0.4200 0.4400 0.4600 0.4800 0.5000 0.5200 0.5400,0.5600 0.5800 0.6000 0.6200 0.6400 0.6600 0.6800,0.7000 0.7200 0.7400 0.7600 0.7800 0.8000 0.8200,0.8400 0.8600 0.8800 0.9000 0.9200 0.9400 0.9600,0.9800 1.0000,z=10 7 4 1 -2 -5,k=1 2 3 4 5 6,28,theta=0 0.7854 1.5708 2.3562 3.1416,3.9270 4.7124
24、5.4978 6.2832,theta=linspace(0,2*pi,9),w=logspace(0,1,11),用,linspace,函数,格式:,linspace,(初值、终值、点数),logspace,函数,自变量按等比级数赋值。,从,10,的,0,次幂到,1,次幂之间按幂等分为,11,点,(数是等比的),w=1.0000 1.2589 1.5849 1.9953 2.5119 3.1623,3.9811 5.0119 6.3096 7.9433 10.0000,29,(,2,)元素群的四则运算和幂次运算 元素群的运算是矩阵中所有元素按单个元素运算。运算符前加,.,号,表示元素群运算。
25、元素群的运算的两个矩阵必须是同阶的。(标量会自动扩展为同阶矩阵参与运算),x=1,2,3,y=4,5,6,z=x.*y,z=x.y,z=x.y,z=x.2,z=2.x y,z=4 10 18,x*y,不能成立,z=4.0 2.5 2.0,元素群没有左除右除之分,z=1 32 729,xy,能成立吗?,z=1 4 9,x2,能成立吗?,z=2 4 8 16 32 64,2x y,能成立吗?,d=1 4 7;8 5 2;3 6 0,d3,d.3,3.d,3d,元素群的幂次运算是各个元素自行作幂次运算,对每个元素的这种运算和对标量运算一样。但是,不能将元素群运算称为数组运算。,区别左边运算,30,输
26、入算式,d,d3,d.3,输出结果,1 4 7,8 5 2,3 6 0,627 636 510,804 957 516,486 612 441,1 64 343,512 125 8,27 216 0,输入算式,3.d,3d,输出结果,3 81 2187,6561 243 9,27 729 1,1.0e+005*,2.6388-0.0000i 3.0233+0.0000i 1.9754+0.0000i,3.4735-0.0000i 3.9797+0.0000i 2.6003+0.0000i,2.3170-0.0000i 2.6546+0.0000i 1.7345+0.0000i,31,(,3,)
27、元素群的函数,除矩阵运算的乘、右除、左除、幂指数(,/,)、,sqrtm,、,expm,、,logm,函数外,基本函数库中的常用函数都可用于元素群运算。自变量可以是任意阶的矩阵。,基本函数库(,elfun,),32,33,x=0:0.1:pi/4,x=,0,0.1000,0.2000,0.3000,0.4000,0.5000,0.6000,0.7000,disp(,显示,x sin(x)cos(x)tan(x),disp(x,sin(x)cos(x)tan(x),显示,x sin(x)cos(x)tan(x),0 0 1.0000 0,0.1000 0.0998 0.9950 0.1003,0
28、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,34,2.4,逻辑判断及流程控制,1.,关系运算,a=2+2=4,a=(2+2=4),a=(34),a=(43),a=(3=4),a=(43),a=(34),等于,,a=1,a=1,小于,,a=1,a=0,小于等于,,a=1,a=0,大于,,a=1,a=0,a=(4
29、3),a=(3=4),a=(3=4),A=magic(6),rem(A,3),p=(rem(A,3)=0),lp=find(p),大于等于,,a=1,a=0,不等于,,a=1,魔方矩阵,每行、每列、对角线的元素之和,=(n,3,+n)/2,A,整除,3,,求余数,余数为,0,,是真,即整除,找出,p,矩阵中不为零元素的序号,矩阵元素是按列排序号的。,35,A=magic(6),A=35 1 6 26 19 24,3 32 7 21 23 25,31 9 2 22 27 20,8 28 33 17 10 15,30 5 34 12 14 16,4 36 29 13 18 11,rem(A,3)
30、ans=2 1 0 2 1 0,0 2 1 0 2 1,1 0 2 1 0 2,2 1 0 2 1 0,0 2 1 0 2 1,1 0 2 1 0 2,p=(rem(A,3)=0),p=0 0 1 0 0 1,1 0 0 1 0 0,0 1 0 0 1 0,0 0 1 0 0 1,1 0 0 1 0 0,0 1 0 0 1 0,lp=find(p),lp=,2 5 9 12 13 16 20 23 27 30 31 34,36,矩阵元素的序号排法:,nm,阵中下标为,(j,k),的元素序号为,l=(k-1)*n+j,1,7,13,19,25,31,2,8,14,20,26,32,3,9,15
31、21,27,33,4,10,16,22,28,34,5,11,17,23,29,35,6,12,18,24,30,36,37,符号,意义,符号,意义,符号,意义,+,加,-,减,*,矩阵乘,矩阵左除,/,矩阵右除,矩阵乘幂,.*,矩阵元素乘,./,矩阵元素除,.,矩阵元素乘幂,(),优先,下标输入参量,矩阵,向量输入变量,:,整行(列)等增量赋值,.,小数点,.,母目录,行命令延续符,语句分割符,显示,;,语句分割符,不显示,=,赋值符,转置,引用,!,操作系统命令,%,注释符,=,关系相等符,关系大小符,=,关系不等符,&,逻辑与,|,逻辑或,逻辑非,xor,异或,kron,Kroneck
32、er,积,数,学,及,逻,辑,运,算,符,号,38,exist,检查变量或函数是否有定义,any,检查向量中有无非零元素,all,检查向量中元素是否全为非零,find,找到非零元素的序号,isnan,元素为,NaN,时得,1,isinf,元素为,Inf,时得,1,isfinite,元素为有限值时得,1,isempty,矩阵为空阵时得,1,isreal,矩阵为实数阵时得,1,issparse,矩阵为稀疏阵时得,1,isstr,为文本字符串时得,1,isglobal,变量为全局变量时得,1,bitand,按位求“与”,bitcmp,按位求“非”(补),bitor,按位求“或”,bitmax,最大浮
33、点整数,bitxor,按位求“异或”,bitset,设置位,bitget,获取位,bitshift,按位移动,union,集合“合”,unique,去除集合中的重复元素,intersect,集合“交”,setdiff,集合“差”,setxor,集合“异或”,ismember,是集合中的元素时为真,逻,辑,字,符,检,查,位,运,算,集,合,运,算,39,2.,逻辑运算,A=0 0 1 1,B=0 1 0 1,A&B,A|B,A,xor(A,B),G=magic(6),rem(G,3),将逻辑运算用于元素群,得出同阶的,0-1,矩阵。,与,或,非,异或,G,整除,3,,求余数,p=(rem(G,
34、3)=0),u=p|p,all(p),all(u),any(p),可以按行、按列判断一群元素的逻辑值。,两个对元素群运算的函数:,列中有一个元素为,0,,即为,0,列中元素全为,1,,才为,1,列中有一个元素为,1,,即为,1,40,A=0 0 1 1,B=0 1 0 1,A&B ans=,0 0 0 1,A|B ans=,0 1 1 1,A ans=,1 1 0 0,xor(A,B)ans=,0 1 1 0,G=magic(6),G=35 1 6 26 19 24,3 32 7 21 23 25,31 9 2 22 27 20,8 28 33 17 10 15,30 5 34 12 14 1
35、6,4 36 29 13 18 11,rem(G,3),ans=2 1 0 2 1 0,0 2 1 0 2 1,1 0 2 1 0 2,2 1 0 2 1 0,0 2 1 0 2 1,1 0 2 1 0 2,41,rem(G,3),ans=2 1 0 2 1 0,0 2 1 0 2 1,1 0 2 1 0 2,2 1 0 2 1 0,0 2 1 0 2 1,1 0 2 1 0 2,p=(rem(G,3)=0),p=0 0 1 0 0 1,1 0 0 1 0 0,0 1 0 0 1 0,0 0 1 0 0 1,1 0 0 1 0 0,0 1 0 0 1 0,u=p|p,u=1 1 1 1 1 1
36、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,all(p),all(u),any(p),ans=0 0 0 0 0 0,ans=1 1 1 1 1 1,ans=1 1 1 1 1 1,42,3.,流程控制语句,(,1,),if,语句,if(,表达式,),语句组,A,,,end,if(,表达式,1),语句组,A,,,else,语句组,B,,,end,if(,表达式,1),语句组,A,,,elseif (,表达式,2),语句组,B,,,else,语句组,C,,,end,43,n=input(n=),if rem(n,2)=
37、0 a=even,else a=odd,end,n=7 a=odd;n=8 a=even,n=a=odd,n=input(n=),if isempty(n)=1 a=empty,elseif rem(n,2)=0 a=even,else a=odd,end,n=a=empty,输入数,n,,判断奇偶性。如果用户没有键入数就回车,程序会判断为,odd,。,修改为用户无输入时程序自动中止。,44,(,2,),while,语句,while (,表达式,),语句组,A,,,end,x=1;while x=inf,x1=x;x=2*x;end,x1,x1=8.9885e+307,求,MATLAB,中的最
38、大实数。,X,不断增大,直到无法表示它的值,只能用,inf,表示为止。,y=1;while 1+y1,y1=y y=y/2;end,y1,y1=2.2204e-016,求,MATLAB,相对精度,,y,不断减小,直至,MATLAB,分不出,1+y,与,1,的差别为止。,x=1;while x=inf,x1=x;x=1.1*x;end,x1,x1=1.7837e+308,45,(,3,),for,语句,for k=,初值:增量:终值 语句组,A,,,end,将语句组,A,反复执行,N,次,每次执行时程序中的,k,值不同。,N=1+,(终值,-,初值),/,增量,用,for,语句求三角函数表,fo
39、r x=0:0.1:pi/4 disp(x,sin(x),cos(x),tan(x),end,运行结果,x sin(x)cos(x)tan(x),0 0 1 0,1/10 839/8404 1195/1201 1499/14940,1/5 209/1052 295/301 374/1845,3/10 409/1384 1647/1724 275/889,2/5 368/945 2882/3129 1777/4203,1/2 501/1045 1699/1936 820/1501,3/5 1153/2042 430/521 979/1431,7/10 947/1470 992/1297 486/
40、577,46,列出构成,Hilbert,矩阵的程序,format rat,显示形式是分数近似,n=input(n=),format rat,for i=1:n,for j=1:n,h(i,j)=1/(i+j-1);end,end,h,n=5,h=1 1/2 1/3 1/4 1/5,1/2 1/3 1/4 1/5 1/6,1/3 1/4 1/5 1/6 1/7,1/4 1/5 1/6 1/7 1/8,1/5 1/6 1/7 1/8 1/9,增加可读性,format rat,n=input(n=),for i=1:n,for j=1:n,h(i,j)=1/(i+j-1);,end,end,h,在,
41、if,,,for,,,while,与表达式之间留,空格,,在表达式与语句组之间必须用,空格或逗号,分隔,必须用,逗号或分号,分隔,end,和,else,。,break,是中止循环的命令,在多重循环中,,break,只能使程序跳出包含它的最内部的那个循环。,47,(,4,),switch,语句,switch-case-otherwise,switch,表达式(标量或字符串),case,值,1,语句组,A,Case,值,2,语句组,B,.,Otherwise,语句组,N,end,当表达式的值(或字符串)与某,case,语句中的值(或字符串)相同时,它就执行该,case,语句后的语句组,然后跳到终点
42、的,end,。,case,语句可以有,N-1,个,如果没有任何一个,case,值能与表达式值相符,则执行,otherwise,后面的语句组,N,。,48,n=input(n=),switch mod(n,2),case 1,a=,奇,case 0,a=,偶,otherwise,a=,空,end,n=5,a=,奇,n=input(n=),switch rem(n,2),case 1,a=,奇,case 0,a=,偶,otherwise,a=,空,end,n=8,a=,偶,判断输入数,n,的奇、偶、空的程序,mod,(,x,,,m,),x,整除,m,取正余数,,rem,(,a,,,b,),a,整除
43、b,,求余数,n=,负数,n=-5,a=,奇,n=-8,a=,偶,49,2.5,基本绘图方法,1,直角坐标中的两维曲线,(,1,),plot(y)-,输入一个数组的情况,y=5*(rand(1,10)-.5),plot(y),title(my first plot),xlabel(x),ylabel(y),grid,画出,10,个随机数的曲线。,Rand,函数产生,01,之间的随机数,平均值是,0.5,。,加标题,,坐标轴说明,加坐标网格线,t=0:0.5:4*pi,y=exp(-0.1*t).*sin(t),plot(t,y),y1=exp(-0.1*t).*sin(t+1),plot(t
44、y1,:),t,是横坐标,,y,为纵坐标,y1,相位超前,1,弧度。,(,2,),Plot(x,y)-,输入两个数组的情况,50,51,52,53,2,线型、点型和颜色,y2=exp(-0.1*t).*sin(t+1),plot(y2,*b),plot(y1,:y),plot(y2,+r),蓝色*号线,黄色虚线,红色,+,号线,t=0:0.5:4*pi;,y=exp(-0.1*t).*sin(t);,y1=exp(-0.1*t).*sin(t+1);,plot(t,y;y1),t,是向量,,y,是矩阵,如果,t,是列(行)向量,则,y,的列(行)长度与,t,相同。,y,的行(列)数就是曲线的
45、根数。,这种方法要求所有的输出量有同样的长度和同样的自变量向量。不便于用户自行设定线型和颜色。,3,多条曲线的绘制,有四种方法在一张图上显示多条曲线,(,1,)用,plot(t,y1,y2,),命令,54,55,(,2,)用,hold,命令,plot(x1,y1,x2,y2,.xn,yn),plot(t,y,+g,t2,y2,:r);,title(,线型,点型和颜色,);,xlabel(,时间,),ylabel(Y),x1,y1,x2,y2,xn,yn,分别为数组对,每一对数组可以绘出一条曲线,每一组数组对的长度可以不同,在后面都可以加线型标志符。,为曲线图加标题,plot(t,y),hold
46、 on,plot(t,y1,g);,t2=0:.2:2*pi;,y2=exp(-0.5*t2).*sin(5*t2+1);,plot(t2,y2);,hold off,画完一张图用命令保持住,再画下一条曲线。,两张图的变量长度可以各不相同。只要每张图的自变量和因变量长度相同就可以。,(,3,)在,plot,后使用多输入变量,56,(,2,)图用,hold,命令,(,3,)图在,plot,后使用多输入变量,57,(,4,)用,plotyy,命令,y3=5*y2;plotyy(t,y,t2,y3);,grid,gtext(t,t2);,gtext(y),gtext(y3),Plotyy,设有两个纵
47、坐标,可以绘制两个,y,尺度不同的变量,,x,仍只用同一比例尺。,用,gtext,命令可以标注纵坐标和曲线。,58,4.,屏幕控制和其他二维绘图,(,1,)图形屏幕控制命令,图形屏幕可以开、关,可以开几个图形窗,可以在一个图形窗内华几幅分图,每幅分图可以用不同坐标。,figure,clf,hold,hold on,hold off,close,close all,subplot(n,m,p),打开图形窗口;,清除当前图形窗的内容;,保持当前图形窗的内容;,再次用,hold,就解除保持状态。,关闭当前图形窗口。,关闭所有图形窗口。,将图形窗口分为,n*m,个子图,在第,p,个子图处绘制图形。,5
48、9,figure,创建图形窗口,shg,显示图形,图形,窗的,控制,gcf,获取当前图形窗的句柄,refresh,刷新图形,clf,清除当前图形窗,close,关闭图形窗,axes,在任意位置创建坐标系,ishold,保持当前图形状态为真,轴系,的,控制,gca,获取当前坐标系的句柄,box,形成轴系方向,cla,清除当前坐标系,line,创建直线,surface,创建曲面,图形,对象,patch,创建图形填充块,light,创建照明,image,创建图象,通用图形函数(,graphics,),(h),60,set,设置对象特性,gcbo,获得回叫对象的曲柄,图形,get,获得对象特性,gcb
49、f,获得回叫图形的曲柄,句柄,reset,复位对象特性,drawnow,直接等待图形事件,操作,delet,删除对象,findobj,寻找具有特定值的对象,gco,获得当前对象的句柄,copyobj,为图形对象及其子项作硬拷贝,工具,closereq,请求关闭图形窗,ishandle,是图形句柄时为真,newplot,说明,Nextplot,的,M,文件,ginput,从鼠标作图形输入,uiputfile,给出存储文件的对话框,杂项,graymon,设定图形窗灰度监视器,uigetfile,给出询问文件名的对话框,rbbox,涂抹块,whitebg,设定图形窗背景色,rotate,围绕指定方向
50、旋转对象,zoom,二维图形的放大和缩小,terminal,设定图形终端类型,warndlg,警告对话框,61,(,2,)其他二维绘图命令,stem,stairs,bar,errorbar,hist,fill(t,y,颜色标注符,),绘脉冲图,绘阶梯图,绘条形图,绘误差条形图,绘直方图,颜色标注符,r,subplot(2,2,1),stem(t,y);,title(stem(t,y),subplot(2,2,2),stairs(t,y);,title(stairs(t,y),subplot(2,2,3),bar(t,y);,title(bar(t,y),subplot(2,2,4),fill(
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818