MATLAB基础编程入门

上传人:一*** 文档编号:242979099 上传时间:2024-09-13 格式:PPT 页数:129 大小:4.66MB
返回 下载 相关 举报
MATLAB基础编程入门_第1页
第1页 / 共129页
MATLAB基础编程入门_第2页
第2页 / 共129页
MATLAB基础编程入门_第3页
第3页 / 共129页
点击查看更多>>
资源描述
,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,MATLAB,基础编程入门,目 录,第,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,二端口电路,第一章,MATLAB,简介,MATLAB(MATrix LABoratory,即矩阵实验室,),是,MathWork,公司推出的一套高效率的数值计算和可视化软件。,MATLAB,是当今科学界最具影响力、也是最具活力的软件,它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。,它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。,MATLAB,语言有如下优点:,1.,编程简单使用方便,MATLAB,的基本数据单元是既不需要指定维数、也不需要说明数据类型的矩阵,而且数学表达式和运算规则与通常的习惯相同。因此,在,MATLAB,环境下,数组的操作与数的操作一样简单。,MATLAB,的矩阵和向量操作功能是其他语言无法比拟的。,2.,函数库可任意扩充,由于,MATLAB,语言库函数与用户文件的形式相同,所以用户文件可以像库函数一样随意调用。所以用户可根据自己的需要任意扩充函数库。,3.,语言简单内涵丰富,MATLAB,语言中最重要的成分是函数,其一般形式为:,Function a,b,c=fun(d,e,f),fun,是自定义的函数名,只要不与库函数名相重,并且符合字符串的书写规则即可。这里的函数既可以是数学上的函数,也可以是程序块或子程序,内涵十分丰富。每个函数建立一个同名的,M,文件,如上述函数的文件名为,fun.m,。这种文件简单、短小、高效,并且便于调试。,4.,简便的绘图功能,MATLAB,具有二维和三维绘图功能,使用方法十分简便。而且用户可以根据需要在坐标图上加标题。坐标轴标记。文本注释及栅格等,也可一指定图线形式,(,如实线、虚线等,),和颜色,也可以在同一张图上画不同函数的曲线,对于曲面图还可以画出等高线。,5.,丰富的工具箱,由于,MATLAB,的开放性,许多领域的专家都为,MATLAB,编写了各种程序工具箱。,这些工具箱提供了用户在特别应用领域所需的许多函数,这使得用户不必花大量的时间编写程序就可以直接调用这些函数,达到事半功倍的效果。,第二章,MATLAB,基本语法,2.1,变量及其赋值,(,1,)标识符与数,标识符是标识变量名、常量名、函数名和文件名的字符串的总称。标识符可以是英文字母、数字和下划线等符号。标识符第,1,个字符必须是英文字母,,MATLAB,对大、小写敏感。,MATLAB,只有一种数据格式,双精度(即,64,位)二进制,对应于十进制,16,位有效数和,308,次幂。,(,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,元素之间用逗号、空格分开。不同行以分号隔开。语句结尾用回车或逗号,会显示结果,如果不想显示结果,用分号。,元素用()中的数字(下标)来注明,一维用一个下标,二维用两个下标,逗号分开。,a(5,:)=5,4,3,b=a(2,4,1,3),a(2,4,5, : )=,a/7,如果赋值元素的下标超过原来矩阵的大小,矩阵的行列会自动扩展。,全行赋值,用冒号。,提取交点元素;,抽取某行元素用空矩阵。,(,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,复数矩阵有两种赋值方法:,将其元素逐个赋予复数;,将其实部和虚部矩阵分别赋值。,w=z,(共轭转置),u=conj(z),(共轭),v=conj(z),(转置),Z,复数矩阵共轭转置:行列互换,各元素的虚部反号。,函数,conj,(,z,)共轭:只把各元素的虚部反号。,转置,conj,(,z,):行列互换。,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),(共轭),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,(,4,)变量检查,who,whos,inf,NaN,检查工作空间中的变量;,检查变量的详细特征,无穷大,1/0,;,非数(,Not a Number,),0/0 inf/inf 0*inf,。,系统不停止运算,结果仍为,inf,或,NaN,。,(,5,)基本赋值矩阵,f1=ones(3,2),f2=zeros(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,。,线性分割函数,大矩阵可由小矩阵组成,其行列数必须正确,恰好填满全部元素。,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,大矩阵可由小矩阵组成,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,2.2,矩阵的初等运算(,1,)矩阵的加减乘法,i.,加、减法:相加减的两矩阵阶数必须相同,对应元素相加减。,n,m=size(fb2),x=-1 0 1; y=x-1,y = -2 -1 0,语句,size,检查矩阵阶数,两矩阵相加,阶数必须相同。,两相加减的矩阵中有一个是标量时,,MATLAB,将标量扩展成同等元素矩阵,与另一矩阵相加减。,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 -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,列对应元素乘积的和。,(,2,)矩阵的除法及线性方程组的解,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,inv(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,右除。,右除时阶数检查条件:两矩阵的列数必须相等。,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,可以表示为,ax=b,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.7407 0.4074 0.0000,解线性方程组,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,(,3,)矩阵的乘方和幂次函数,MATLAB,的运算符,*、,/,、,、,和,,指数函数,expm,、对数函数,logm,和开方函数,sqrtm,是对矩阵进行的,即把矩阵作为一个整体来运算。除此以外,其他,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,验证,按元素群运算,,U2* U2S,,,U2.U2=S,按矩阵运算,按元素群运算,按矩阵运算,按元素群运算,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=sqrtm(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,(,4,)矩阵结构形式的提取与变换,A=8 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,取矩阵的右上三角部分,将元素按列取出排成一列,A =,8 1 6 0,3 5 7 1,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 2 0 1 2,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.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,theta = 0 0.7854 1.5708 2.3562 3.1416,3.9270 4.7124 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,(,2,)元素群的四则运算和幂次运算 元素群的运算是矩阵中所有元素按单个元素运算。运算符前加,.,号,表示元素群运算。 元素群的运算的两个矩阵必须是同阶的。(标量会自动扩展为同阶矩阵参与运算),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,元素群的幂次运算是各个元素自行作幂次运算,对每个元素的这种运算和对标量运算一样。但是,不能将元素群运算称为数组运算。,区别左边运算,输入算式,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,(,3,)元素群的函数,除矩阵运算的乘、右除、左除、幂指数(, / ,)、,sqrtm,、,expm,、,logm,函数外,基本函数库中的常用函数都可用于元素群运算。自变量可以是任意阶的矩阵。,基本函数库(,elfun,),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.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,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=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,矩阵中不为零元素的序号,矩阵元素是按列排序号的。,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),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,矩阵元素的序号排法:,nm,阵中下标为,(j,k),的元素序号为,l=(k-1)*n+j,1,7,13,19,25,31,2,8,14,20,26,32,3,9,15,21,27,33,4,10,16,22,28,34,5,11,17,23,29,35,6,12,18,24,30,36,符号,意义,符号,意义,符号,意义,+,加,-,减,*,矩阵乘,矩阵左除,/,矩阵右除,矩阵乘幂,.*,矩阵元素乘,./,矩阵元素除,.,矩阵元素乘幂,( ),优先,下标输入参量,矩阵,向量输入变量,:,整行(列)等增量赋值,.,小数点,.,母目录,行命令延续符,语句分割符,显示,;,语句分割符,不显示,=,赋值符,转置,引用,!,操作系统命令,%,注释符,=,关系相等符,关系大小符,=,关系不等符,&,逻辑与,|,逻辑或,逻辑非,xor,异或,kron,Kronecker,积,数,学,及,逻,辑,运,算,符,号,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,最大浮点整数,bitxor,按位求“异或”,bitset,设置位,bitget,获取位,bitshift,按位移动,union,集合“合”,unique,去除集合中的重复元素,intersect,集合“交”,setdiff,集合“差”,setxor,集合“异或”,ismember,是集合中的元素时为真,逻,辑,字,符,检,查,位,运,算,集,合,运,算,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, 3)=0),u=p|p,all(p),all(u),any(p),可以按行、按列判断一群元素的逻辑值。,两个对元素群运算的函数:,列中有一个元素为,0,,即为,0,列中元素全为,1,,才为,1,列中有一个元素为,1,,即为,1,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 16,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,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,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,3.,流程控制语句,(,1,),if,语句,if (,表达式,),语句组,A,,,end,if (,表达式,1),语句组,A,,,else,语句组,B,,,end,if (,表达式,1),语句组,A,,,elseif (,表达式,2),语句组,B,,,else,语句组,C,,,end,n=input( n=), if rem(n, 2)=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,。,修改为用户无输入时程序自动中止。,(,2,),while,语句,while (,表达式,),语句组,A,,,end,x=1; while x=inf, x1=x; x=2*x; end, x1,x1 = 8.9885e+307,求,MATLAB,中的最大实数。,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,(,3,),for,语句,for k=,初值:增量:终值 语句组,A,,,end,将语句组,A,反复执行,N,次,每次执行时程序中的,k,值不同。,N=1+,(终值,-,初值),/,增量,用,for,语句求三角函数表,for 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/577,列出构成,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,在,if,,,for,,,while,与表达式之间留,空格,,在表达式与语句组之间必须用,空格或逗号,分隔,必须用,逗号或分号,分隔,end,和,else,。,break,是中止循环的命令,在多重循环中,,break,只能使程序跳出包含它的最内部的那个循环。,(,4,),switch,语句,switch-case-otherwise,switch,表达式(标量或字符串),case,值,1,语句组,A,Case,值,2,语句组,B,.,Otherwise,语句组,N,end,当表达式的值(或字符串)与某,case,语句中的值(或字符串)相同时,它就执行该,case,语句后的语句组,然后跳到终点的,end,。,case,语句可以有,N-1,个,如果没有任何一个,case,值能与表达式值相符,则执行,otherwise,后面的语句组,N,。,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,整除,b,,求余数,n=,负数,n = -5,a =,奇,n=-8,a =,偶,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,y1,:),t,是横坐标,,y,为纵坐标,y1,相位超前,1,弧度。,(,2,),Plot(x,y)-,输入两个数组的情况,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,的行(列)数就是曲线的根数。,这种方法要求所有的输出量有同样的长度和同样的自变量向量。不便于用户自行设定线型和颜色。,3,多条曲线的绘制,有四种方法在一张图上显示多条曲线,(,1,)用,plot(t,y1,y2,),命令,(,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 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,后使用多输入变量,(,2,)图用,hold,命令,(,3,)图在,plot,后使用多输入变量,(,4,)用,plotyy,命令,y3=5*y2; plotyy(t,y,t2,y3);,grid,gtext(t, t2);,gtext(y),gtext(y3),Plotyy,设有两个纵坐标,可以绘制两个,y,尺度不同的变量,,x,仍只用同一比例尺。,用,gtext,命令可以标注纵坐标和曲线。,4.,屏幕控制和其他二维绘图,(,1,)图形屏幕控制命令,图形屏幕可以开、关,可以开几个图形窗,可以在一个图形窗内华几幅分图,每幅分图可以用不同坐标。,figure,clf,hold,hold on,hold off,close,close all,subplot(n,m,p),打开图形窗口;,清除当前图形窗的内容;,保持当前图形窗的内容;,再次用,hold,就解除保持状态。,关闭当前图形窗口。,关闭所有图形窗口。,将图形窗口分为,n*m,个子图,在第,p,个子图处绘制图形。,figure,创建图形窗口,shg,显示图形,图形,窗的,控制,gcf,获取当前图形窗的句柄,refresh,刷新图形,clf,清除当前图形窗,close,关闭图形窗,axes,在任意位置创建坐标系,ishold,保持当前图形状态为真,轴系,的,控制,gca,获取当前坐标系的句柄,box,形成轴系方向,cla,清除当前坐标系,line,创建直线,surface,创建曲面,图形,对象,patch,创建图形填充块,light,创建照明,image,创建图象,通用图形函数(,graphics,),(h),set,设置对象特性,gcbo,获得回叫对象的曲柄,图形,get,获得对象特性,gcbf,获得回叫图形的曲柄,句柄,reset,复位对象特性,drawnow,直接等待图形事件,操作,delet,删除对象,findobj,寻找具有特定值的对象,gco,获得当前对象的句柄,copyobj,为图形对象及其子项作硬拷贝,工具,closereq,请求关闭图形窗,ishandle,是图形句柄时为真,newplot,说明,Nextplot,的,M,文件,ginput,从鼠标作图形输入,uiputfile,给出存储文件的对话框,杂项,graymon,设定图形窗灰度监视器,uigetfile,给出询问文件名的对话框,rbbox,涂抹块,whitebg,设定图形窗背景色,rotate,围绕指定方向旋转对象,zoom,二维图形的放大和缩小,terminal,设定图形终端类型,warndlg,警告对话框,(,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(t,y,r);,title( fill(t,y,r),subplot(1,1,1),loglog,semilogx,semilogy,polar(theta,rho),取消子图,绘出以,log10-log10,为坐标刻度的对数图,使用半对数刻度绘图,,x,轴为,log10,刻度,,y,轴为线性刻度。,使用半对数刻度绘图,,y,轴为,log10,刻度,,x,轴为线性刻度。,极坐标绘图,角度,theta,为一个坐标,单位是弧度,另一坐标是矢径,rho,。,二维图形函数库,基本,plot,线性,X-Y,坐标绘图,polar,极坐标绘图,X-Y,loglog,双对数,X-Y,坐标绘图,plotyy,用左、右两种,Y,坐标画图,图形,semilogx,半对数,X,坐标绘图,semilogy,半对数,Y,坐标绘图,坐标,axis,控制坐标轴比例和外观,subplot,在平铺位置建立图形轴系,控制,hold,保持当前图形,图,title,标出图名(适用于三维图形),gtext,用鼠标定位文字,形,xlabel,X,轴
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!