资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,1,/32,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,教学内容,Matlab程序设计(chn x sh j),第一页,共32页。,教学要求,熟悉(shx)Matlab的基本编程方法,熟练掌握Matlab语言M文件,程序控制的三种基本结构,第二页,共32页。,Matlab程序设计(chn x sh j),在欧美(u mi)各高等学校,Matlab成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等诸多课程的基本教学工具,成为学生必须掌握的基本技能。,在设计研究单位和工业部门,Matlab已被广泛地用于研究和解决各种具体的工程问题。,可以预见,Matlab将在我国科学研究和工程应用中发挥越来越大的作用。,第三页,共32页。,Matlab程序设计(chn x sh j),交互式命令执行方式(命令窗口),逐条输入,逐条执行,操作简单、直观,但速度慢,执行过程不能保留。,M文件的程序执行方式,将命令编成程序存储在一个文件中(M文件),依次运行文件中的命令,可以重复进行(jnxng)。,Matlab程序设计有传统高级语言的特征,又有自己独特的特点,可以利用数据结构的特点,使程序结构简单,编程效率高。,第四页,共32页。,Matlab程序设计(chn x sh j),用Matlab语言编写的程序,称为M文件。,是由若干Matlab命令组合在一起构成的,它可以完成某些操作,也可以实现某种算法。,M文件根据调用(dioyng)方式的不同分为两类:,命令文件(Script File),函数文件(Function File),它们的扩展名都是.m,第五页,共32页。,Matlab程序设计(chn x sh j),命令文件没有输入参数,也不返回输出参数;函数(hnsh)文件可以带输入参数,也可以返回输出参数。,命令文件对工作空间中的变量进行操作,文件中所有命令的执行结果也返回工作空间中;函数(hnsh)文件中定义的变量为局部变量,当函数(hnsh)文件执行完毕时,这些变量也被清除。,命令文件可以直接运行;函数(hnsh)文件不能直接运行,要以函数(hnsh)调用的方式来调用它。,第六页,共32页。,Matlab程序设计(命令(mng lng)文件exch),命令文件:,clear;,a=1:10;,b=11,12,13,14;15,16,17,18;,c=a;a=b;b=c;,a,b,将文件保存为exch,并在命令窗口(chungku)执行。,执行结果(将a,b的值互换),a=,11 12 13 14,15 16 17 18,b=,1 2 3 4 5 6 7 8 9 10,第七页,共32页。,Matlab程序设计(chn x sh j)(函数文件),fexch.m,function a,b=exch(a,b),c=a;a=b;b=c;,然后(rnhu)在命令窗口调用该函数文件:,clear;,x=1:10;,y=11,12,13,14;15,16,17,18;,x,y=fexch(x,y),输出结果为:,a=,11 12 13 14,15 16 17 18,b=,1 2 3 4 5 6 7 8 9 10,函数参数a,b,c未保留在工作空间中,x,y保留在工作空间中。,第八页,共32页。,程序如下(rxi):,语句组1,当条件成立时,执行语句组1,否则执行语句组2,然后再执行if语句,Matlab程序设计(chn x sh j),b=11,12,13,14;15,16,17,18;,disp(A),A=input(输入A矩阵);,Matlab程序设计(chn x sh j),7 16 27,Matlab程序设计(chn x sh j),交互式命令执行方式(命令窗口),程序如下(rxi):,函数(hnsh)文件不能直接运行,要以函数(hnsh)调用的方式来调用它。,d=b*b-4*a*c;,function a,b=exch(a,b),switch语句根据表达式的取值不同(b tn),分别执行不同(b tn)的语句,其语句格式:,Matlab程序设计(chn x sh j)(M文件),M文件是一个文本文件,可以用任何编辑程序来建立和编辑,一般最常用的是使用Matlab提供的文本编辑器。,该编辑器是一个集编辑和调试于一体的工作(gngzu)环境。,第九页,共32页。,Matlab程序设计(程序控制(chngxkngzh)结构),顺序结构,选择结构,循环结构,任何复杂的程序都可以(ky)由这3种基本结构构成。,第十页,共32页。,Matlab程序设计(chn x sh j)(顺序结构),顺序结构是指按照程序中语句的排列顺序依次执行,直到程序的最后一个语句。(最简单的一种程序),1、数据的输入,从键盘输入数据,则可以使用input函数(hnsh)来进行,,调用格式为:,A=input(提示信息,选项);,其中提示信息为一个字符串,用于提示用户输入数据。,例如:从键盘输入A矩阵,可以采用下面的命令来完成,A=input(输入A矩阵);,如果在input函数(hnsh)调用时采用s选项,则允许用户输入一个字符串。,例:xm=input(Whats your name?,s);,第十一页,共32页。,Matlab程序设计(chn x sh j)(顺序结构),2、数据的输出,命令窗口输出函数主要有disp函数,其调用格式为:,disp(输出项),其中输出项既可以(ky)为字符串,也可以(ky)为矩阵。例如:,A=Hello,Tom;,disp(A),输出为:Hello,Tom,又如:A=1,2,3;4,5,6;7,8,9;,disp(A),输出为:,1 2 3,4 5 6,7 8 9%disp函数输出格式更紧凑,第十二页,共32页。,Matlab程序设计(chn x sh j)(顺序结构),例5.2 求一元二次方程 的根。,由于Matlab能进行复数运算,所以(suy)不需要判断方程的判别式,,可直接根据求根公式求根。,程序如下:,a=input(a=?);,b=input(b=?);,c=input(c=?);,d=b*b-4*a*c;,x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);,disp(x1=,num2str(x(1),x2=,num2str(x(2);,程序输出为:,a=?4,b=?78,c=?54,x1=-0.7188,x2=-18.7812,第十三页,共32页。,Matlab程序设计(chn x sh j)(顺序结构),3、程序的暂停,程序执行过程中暂停,可用pause函数,其调用格式为:,pause(延迟描述),如果省略(shngl)延迟时间,直接使用pause,则将暂停程序,直到,用户按任一键后程序继续执行。,若要强行中止程序的运行可按Ctrl+C键。,第十四页,共32页。,Matlab程序设计(chn x sh j)(选择结构),选择结构是根据给定的条件成立(chngl)或不成立(chngl),分别执行不同的语句。,Matlab用于实现选择结构的语句有if语句,switch语句和try语句。,1.if语句,在Matlab中,if语句有3种格式。,(1)单分支if语句,语句格式:,if 条件,语句组,end,例如:当x是整数矩阵时,输出x的值,if fix(x)=x,disp(x);,end,第十五页,共32页。,Matlab程序设计(chn x sh j)(选择结构),(2)双分支if语句,语句格式(g shi):,if 条件,语句组 1,else,语句组 2,end,当条件成立时,执行语句组1,否则执行语句组2,然后再执行if语句,的后续语句。,第十六页,共32页。,Matlab程序设计(chn x sh j)(选择结构),例 计算分段(fn dun)函数:,程序如下(rxi):,x=input(请输入x的值:);,if x=10,y=cos(x+1)+sqrt(x*x+1);,else,y=x*sqrt(x+sqrt(x);,end,y,也可以用单分支,if,语句来实现:,x=input(,请输入,x,的值:,);,y=cos(x+1)+sqrt(x*x+1);,if x=10,y=x*sqrt(x+sqrt(x);,end,y,第十七页,共32页。,Matlab程序设计(chn x sh j)(选择结构),(3)多分支(fnzh)if语句,语句格式:,if 条件1,语句组 1,elseif 条件2,语句组 2,elseif 条件m,语句组 m,else,语句组n,end,第十八页,共32页。,Matlab程序设计(chn x sh j)(选择结构),输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则,输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则,原样(yun yn)输出。,程序如下:,c=input(请输入一个字符,s);,if c=A&c=a&c=0&c=9,disp(abs(c)-abs(0);,else,disp(c);,end,第十九页,共32页。,Matlab程序设计(选择(xunz)结构),2、switch语句,switch语句根据表达式的取值不同(b tn),分别执行不同(b tn)的语句,其语句格式:,switch 表达式,case 表达式1,语句组1,case 表达式2,语句组2,case 表达式m,语句组m,otherwise,语句组 n,end,第二十页,共32页。,Matlab程序设计(chn x sh j)(选择结构),某商场对顾客所购买的商品实行打折销售(xioshu),标准如下:,price200 没有折扣,200=price500 3%折扣,500=price1000 5%折扣,1000=price2500 8%折扣,2500=price5000 10%折扣,5000 mtimes,Inner matrix dimensions must agree.,第二十四页,共32页。,Matlab程序设计(chn x sh j)(循环结构),循环是指按照给定的条件,重复执行(zhxng)指定的语句,Matlab提供了两种,实现循环结构的语句:for语句和while语句。,1、for语句,for语句的格式为:,for 循环变量=表达式1:表达式2:表达式3,循环体语句,end,其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的,值为循环变量的终值。步长为1时,表达式2可以省略。,第二十五页,共32页。,Matlab程序设计(chn x sh j)(循环结构),已知 ,当n=100时,求y的值。,程序如下(rxi):,y=0;n=100;,for i=1:n,y=y+1/i/i;,end,y,输出结果为:,y=,1.6350,利用Matlab的特点,常用向量运算来代替(dit),循环操作,程序可以如下:,n=100;,i=1:n;,f=1./i.2;,y=sum(f),第二十六页,共32页。,Matlab程序设计(chn x sh j)(循环结构),2、while语句(yj),while语句(yj)的一般格式为:,while条件,循环体语句(yj),end,其执行过程为:,若条件成立,则执行循环体语句(yj),执行后再判断条件是否成立,,如果不成立则跳出循环。,第二十七页,共32页。,Matlab程序设计(循环(xnhun)结构),从键盘输入若干个数,当输入0时结束(jish)输入,求这些数的平均值和,它们的和。,s
展开阅读全文