您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 1_3MATLAB程序设计
化工过程程序设计ProgramDesigninChemicalEngineerProcessMATLAB语言的学习(程序设计基础)第一部分第3章MATLAB程序设计主要学习内容3.1程序控制结构3.2函数文件3.3程序调试第3章MATLAB程序设计3.1程序控制结构3.1.1顺序结构例:输入x,y的值,并将它们的值互换后输出。程序如下:clear,clc,x=input('Inputxplease.');y=input('Inputyplease.');z=x;x=y;y=z;disp(x);disp(y);%end第3章MATLAB程序设计程序的暂停:暂停程序的执行可以使用pause函数,调用格式:pause(停留秒数)如果省略停留时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。若要强行中止程序的运行可使用Ctrl+C命令。第3章MATLAB程序设计3.1.2选择结构1.if语句在MATLAB中,if语句有3种格式。(1)单分支if语句if条件语句组end例:当矩阵a中元素全都大于零时输出a的值。clear,a=input('a=');ifa0disp(a);end%end第3章MATLAB程序设计(2)双分支if语句if条件语句组1else语句组2end例:计算分段函数的值。clear,x=input('请输入x的值:');ifx=0y=(x+sqrt(pi))/exp(2);elsey=log(x+sqrt(1+x*x))/2;endy%end第3章MATLAB程序设计(3)多分支if语句if条件1语句组1elseif条件2语句组2……elseif条件m语句组melse语句组nend例:计算函数y=|x|+|x-2|的值。clearclcx=input(‘x=‘);ifx=2y=x+(x-2);elseifx2&x0y=x-(x-2);elsey=-x-(x-2);endfprintf(‘y=%f’,y);%end2.switch语句switch表达式case表达式1语句组1case表达式2语句组2……case表达式m语句组motherwise语句组nend例:某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):price200没有折扣200≤price5003%折扣500≤price10005%折扣1000≤price25008%折扣2500≤price500010%折扣5000≤price14%折扣输入所售商品的价格,求其实际销售价格。程序如下:price=input('请输入商品价格');switchfix(price/100)%fix()朝零方向取整case{0,1}%价格小于200(花括号里的是胞元数组)rate=0;case{2,3,4}%价格大于等于200但小于500rate=3/100;casenum2cell(5:9)%价格大于等于500但小于1000rate=5/100;casenum2cell(10:24)%价格大于等于1000但小于2500rate=8/100;casenum2cell(25:49)%价格大于等于2500但小于5000rate=10/100;otherwise%价格大于等于5000rate=14/100;endprice=price*(1-rate)%输出商品实际销售价格第3章MATLAB程序设计3.try语句语句格式为:try语句组1catch语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。例:矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。clearA=[1,2,3;4,5,6];B=[7,8,9;10,11,12];tryC=A*B;catchC=A.*B;endClasterr%显示出错原因第3章MATLAB程序设计3.1.3循环结构1、for语句for循环变量=表达式1:表达式2:表达式3循环体语句end例:求1-100间奇数的和。clear,sum=0;fori=1:2:100sum=sum+i;endsum%end其中:表达式1的值为循环变量的初值;表达式2的值为步长;表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。2、while语句一般格式:while(条件)循环体语句end执行过程:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。例:从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和clearsum=0;cnt=0;val=input('Enteranumber:');while(val~=0)sum=sum+val;cnt=cnt+1;val=input('Enteranumber(endin0):');endif(cnt0)summean=sum/cntend%end第3章MATLAB程序设计3、break语句和continue语句与循环结构相关的语句还有break语句和continue语句。它们一般与if语句配合使用。break语句用于终止循环的执行。当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语句。continue语句控制跳过循环体中的某些语句。当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环。4、循环的嵌套如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构。第3章MATLAB程序设计例:求[100,200]之间第一个能被21整除的整数clearforn=100:200ifrem(n,21)~=0%rem()为求余数continueendbreakendn%end第3章MATLAB程序设计3.2函数文件3.2.1函数文件的基本结构function输出形参表=函数名(输入形参表)注释说明部分函数体语句其中:以function开头的一行为引导行,表示该M文件是一个函数文件。函数名的命名规则与变量名相同。输入形参为函数的输入参数,输出形参为函数的输出参数。当输出形参多于一个时,则应该用方括号括起来。函数式M文件名和出现在文件的第一行的函数名必须相同。实际上,MATLAB7忽略了第一行的函数名,并且根据存储在硬盘上的文件名来执行函数。第3章MATLAB程序设计例:编写函数文件求半径为r的圆的面积和周长。函数文件如下:function[s,p]=fcircle(r)%CIRCLEcalculatetheareaandperimeterofacircleofradiir%r圆半径%s圆面积%p圆周长%2009年1月10日编r=input('r=')s=pi*r*r;p=2*pi*r;fprintf('s=%fp=%f',s,p);%end第3章MATLAB程序设计3.2.2函数调用一般格式:[输出实参表]=函数名(输入实参表)注意:函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错。函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。r=input('r=')[area,peri]=fcircle(r);fprintf('area=%fperi=%f',area,peri);%end第3章MATLAB程序设计在MATLAB中,函数可以嵌套调用,即一个函数可以调用别的函数,甚至调用它自身。一个函数调用它自身称为函数的递归调用。例:利用函数的递归调用,求n!递归调用函数文件factor.mfunctionf=factor(n)n=input('n:')ifn=1f=1;else%递归调用求(n-1)!f=factor(n-1)*n;endfac=factor(5);fac%end第3章MATLAB程序设计3.2.3M文件的建立与打开M文件是一个文本文件,可以使用MATLAB提供的文本编辑器进行编辑。1、建立新的M文件启动MATLAB文本编辑器有3种方法:(1)菜单操作。File菜单中选择New菜单项,再选择M-file命令,打开MATLAB文本编辑器窗口。(2)命令操作。在命令窗口输入edit,打开文本编辑器窗口。(3)命令按钮操作。单击工具栏上的NewM-File命令按钮,打开文本编辑器窗口。在文本编辑器窗口内输入程序,保存为M文件。第3章MATLAB程序设计2、打开已有的M文件打开已有的M文件,有3种方法:(1)菜单操作。File菜单中选择Open命令,在Open对话框中选中所需打开的M文件。(2)命令操作。在命令窗口输入命令:edit文件名,则打开指定的M文件。(3)命令按钮操作。单击工具栏上的OpenFile令按钮,再从弹出的对话框中选择所需打开的M文件。第3章MATLAB程序设计3.3程序调试3.3.1程序调试概述一般来说,应用程序的错误有两类:一类是语法错误:语法错误包括词法或文法的错误,例如函数名的拼写错、表达式书写错等。另一类是运行时的错误:程序运行时的错误是指程序的运行结果有错误,这类错误也称为程序逻辑错误。第3章MATLAB程序设计3.3.2调试器1、Debug菜单项该菜单项用于程序调试,需要与Breakpoints菜单项配合使用。2、Breakpoints菜单项该菜单项共有6个菜单命令,前两个是用于在程序中设置和清除断点的,后4个是设置停止条件的,用于临时停止M文件的执行,并给用户一个检查局部变量的机会,相当于在M文件指定的行号前加入了一个keyboard命令。第3章MATLAB程序设计3.3.3调试命令除了采用调试器调试程序外,MATLAB还提供了一些命令用于程序调试。命令的功能和调试器菜单命令类似,具体使用方法请读者查询MATLAB帮助文档。OVER第3章MATLAB程序设计1、用for和while两种循环编程计算:2、求分段函数值:3、给出一个学生的百分制成绩,要求转化为等级输出。等级:A(90以上),B(80-89,C(70-79),D(60-69,E(60以下),要求用case结构。1001n2)1n2(10xx210x543x5x0)x(f第3章MATLAB程序设计1题:For程序:sum=0forn=1:100sum=sum+(2*n-1)^2endfprintf('sum=f%',sum)第3章MATLAB程序设计While程序:clc,clear,sum=0;n=1whilen=100sum=sum+(2*n-1)^2n=n+1endfprintf('sum=f%',sum)第3章MATLAB程序设计2题:clc,clear,x=input('x=')ifx10y=2*xelseifx=5y=0elsey=(x-3)/4endfprintf('y=%f',y)第3章MATLAB程序设计3题:x=input('x=')switch1casex=90fprintf('A')casex=80&x90fprintf('B')casex=70&x80fprintf('C')casex=60&x70fprintf('D')otherwisefprintf('E')end
本文标题:1_3MATLAB程序设计
链接地址:https://www.777doc.com/doc-3705504 .html