资源描述
上机试验中碰到一些上机试验中碰到一些Matlab函数函数(1)*.*.(2)a:b:clinspace(a,b,c)(3)loglog10(4)exp(5)lengthsize(6)roundceilfloor(7)invmod第1页3.1Matlab程序类型程序类型3.2程序流程控制程序流程控制3.3关系与逻辑运算符关系与逻辑运算符3.4函数函数3.5绘图绘图第三章MATLAB编程基础第2页3.1Matlab程序类型程序类型1、脚本文件以.m格式进行存取,包含一连串MATLAB指令和必要注解,全部变量都存在Workspace中,没有输入参数,也不返回参数。2、函数文件(helpfunction)以.m格式存在,函数接收输入参数,然后执行并输出结果。第3页3.2程序流程控制1、If,else,elseif2、For3、While4、Switch第4页1、If,else,elseifTYPE1:ifexpressionstatementsendExample,ifmod(a,2)=0a=a+3;end第5页TYPE 2:ifexpression statements else statements end Example:if(sum(A(:,2)10)if(sum(A(:,2)10)A(1,1)=A(1,1)+B(1,1)A(1,1)=A(1,1)+B(1,1)A(2,1)=2*A(2,1)A(2,1)=2*A(2,1)elseelse A(1,1)=A(1,1)+A(1,1);A(1,1)=A(1,1)+A(1,1);A(2,1)=0.5A(2,1)=0.5 endend第6页TYPE 3:ifexpressionstatements elseif expressionstatementselsestatementsend 第7页If语句能够嵌套ifexpression1 statements elseif expression2statementselsestatementsendend 第8页步长缺省值为步长缺省值为1,能够在正实数或负实数范围内任意指,能够在正实数或负实数范围内任意指定。对于正数,循环变量值大于终止值时,循环结束;定。对于正数,循环变量值大于终止值时,循环结束;对于负数,循环变量值小于终止值时,循环结束。循环对于负数,循环变量值小于终止值时,循环结束。循环结构能够嵌套使用。结构能够嵌套使用。2、for循环语句基本格式 for 循环变量起始值:步长:终止值 循环体 end例:例:helpfor第9页3、while循环语句循环语句基本格式基本格式while表示式表示式循环体循环体end若表示式为真,则执行循环体内容,执行后再判断表示式是否为真,若不为真,则跳出循环体,向下继续执行。While循环和for循环区分在于,while循环结构循环体被执行次数不是确定,而for结构中循环体执行次数是确定。第10页4、Switch语语句句switchexpressioncanbeascalarorastring casetest1 commandset1 casetest2 commandset2.otherwise commandsetlast end 第11页3.3 关系和逻辑运算符Operatoroperation=Equalto=NotequaltoGreaterthan=GreaterthanorequaltoLessthan=Lessthenorequalto第12页关系运算符假设有:A=1 2-1-5 B=0 2 3 1 小于 AB ans=0 0 1 1 A 大于 AB ans=1 0 0 0 A1 ans=0 1 0 0=小于等于 A=大于等于 A=B ans=1 1 0 0 =等于 A=B ans=0 1 0 0 ;A=1 ans=1 0 0 0=不等于 A=B ans=1 0 1 1;A=1 ans=0 1 1 1第13页OperatorOperation&LogicalAND|LogicalORLogicalNOT第14页非非A=00101=0注意:在处理逻辑运算时,运算元只有两个值即0和1,所以假如指定数为0,MATLAB认为其为0,而任何数不等于0,则认为是1。设有:A=5-4 0-0.5 B=0 1 0 9&与 A&B=0 1 0 1 A&1=1 1 0 1|或 A|B=1 1 0 1 A|1=1 1 1 1第15页Compute ss=1;k=2;exact=pi2/6whileabs(1-ss/exact)=1e-4ss=ss+1/k2;k=k+1;end第16页3.43.4函数编写函数编写函数编写函数编写格式:function返回变量列表=函数名(输入变量列表)functionoutarg1,outarg2,=fname(inarg1,inarg2,)第17页求求n!functionk=factorial(n)ifnargin1,error(输入变量个数错误,只能输入输入变量个数错误,只能输入个数量个数量);endifnargout 1,error(输出变量个数过多输出变量个数过多);endifabs(n-floor(n)epsn 0%(判定判定n是否为非负整数是否为非负整数)error(n应该为非负数应该为非负数);endifn 1k=k*factorial(n-1);elseif(n=0|n=1)k=1;endend第18页3.43.4画图画图画图画图axis,plot,subplot,figure,holdon,holdoff,第19页plot(y)y=42346plot(x,y)t=0:0.1:4*piy=sin(t)plot(t,y)plot(x1,y1,x2,y2,.)t1=0:0.1:2*pit2=0:0.1:4plot(t1,sin(t1),t2,sqrt(t2)plot(x,y,option)如如t1=0:0.4:2*pit2=1:0.1;4;plot(t1,sin(t1),:,t2;cos(t2),g);第20页semilogx横坐标为对数横坐标为对数semilogy纵坐标为对数纵坐标为对数loglog横纵坐标均为对数横纵坐标均为对数实例演示程序:实例演示程序:t=0.1:0.1:2*pi;y=sin(t);semilogx(t,y)gridon第21页图形窗口分割图形窗口分割Subplot(m,n,I)分成分成m行行n列,并选定列,并选定I实例演示程序:实例演示程序:subplot(2,1,1)t=0.1:0.1:2*piy=sin(t)semilogx(t,y)gridonsubplot(2,1,2)x=1:0.01:5;y=exp(x)plot(x,y)第22页线颜色、线类型、标识类型Thelinecolorshaveyellow,magenta,cyan,red,green,blue,whiteandblack.Thelinestyleshavesolidline(-),dottedline(:),dot-dash line(-.),dash line(-)and no line().The markers have point(.),circle(o),x-mark(x),plus(+),star(*),square(s),diamond(d),triangle(v),up-triangle(),pentagram(p),etc.图形标注图形标注第23页坐标加标注坐标加标注图形加标题图形加标题xlabel,ylabel,zlabeltitle,text第24页坐标轴坐标轴axis(xminxmaxyminymax);holdon;holdoff第25页实例演示程序:实例演示程序:t=0:0.1:4*pi;y=sin(t);plot(t,y)xlabel(x轴(轴(04pi));ylabel(y轴轴)title(正弦波正弦波,Fontsize,12)第26页图例:图例:为图形加图例便于观察分析为图形加图例便于观察分析legend(string1,string2,string3,)实例演示:实例演示:t=0:0.1:4*piplot(t,sin(t),:,t,cos(t),*)legend(sinwave,coswave,None)第27页三维图例三维图例:mesh,surf,plot3xx1=linspace(-3,3,20)xx2=linspace(-3,13,17)x1,x2=meshgrid(xx1,xx2);z=x1.4+3*x1.2+x2.2-2*x1-2*x2-2*x1.2.*x2+6surf(x1,x2,z)第28页QQ1 1(米(米(米(米3 3/秒)秒)秒)秒)QQ2 2(米(米(米(米3 3/秒)秒)秒)秒)截面积截面积截面积截面积A A(米(米(米(米2 2)水位高度水位高度水位高度水位高度HH(米)(米)(米)(米)仿真实例:水仿真实例:水仿真实例:水仿真实例:水位系统位系统位系统位系统第29页系统建模系统建模系统建模系统建模实体实体实体实体水池、管道、阀门水池、管道、阀门水池、管道、阀门水池、管道、阀门属性属性属性属性参数信息:参数信息:参数信息:参数信息:A A输入信息:输入信息:输入信息:输入信息:QQ11QQ2 2输出(状态)信息:输出(状态)信息:输出(状态)信息:输出(状态)信息:HH活动活动活动活动因为因为因为因为QQ1 1,QQ2 2改变,改变,改变,改变,HH在不停地改变。在不停地改变。在不停地改变。在不停地改变。AQAQ11QQ2 2HH数学模型数学模型数学模型数学模型第30页不难看出,在上面方程中有微分运算,这种不难看出,在上面方程中有微分运算,这种不难看出,在上面方程中有微分运算,这种不难看出,在上面方程中有微分运算,这种运算在计算机中是无法实现,能够将其以采样时运算在计算机中是无法实现,能够将其以采样时运算在计算机中是无法实现,能够将其以采样时运算在计算机中是无法实现,能够将其以采样时间间间间T T近似地转化为差分方程:近似地转化为差分方程:近似地转化为差分方程:近似地转化为差分方程:仿真建模仿真建模仿真建模仿真建模经过方程能够看出:假如知道初始时刻水位经过方程能够看出:假如知道初始时刻水位经过方程能够看出:假如知道初始时刻水位经过方程能够看出:假如知道初始时刻水位高度和每个时刻流入流出水量,就能够求出任意高度和每个时刻流入流出水量,就能够求出任意高度和每个时刻流入流出水量,就能够求出任意高度和每个时刻流入流出水量,就能够求出任意时刻水位高度。时刻水位高度。时刻水位高度。时刻水位高度。第31页程序设计程序设计程序设计程序设计 假设假设假设假设在在在在MatlabMatlab上设计程序上设计程序上设计程序上设计程序sw.msw.m第32页仿真结果仿真结果仿真结果仿真结果第33页
展开阅读全文