MATLAB与数学建模MATLAB程序设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《MATLAB与数学建模MATLAB程序设计课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 数学 建模 程序设计 课件
- 资源描述:
-
1、2012级级 MATLAB与数学建模与数学建模第第5 5章章 MATLABMATLAB程序设计程序设计主要内容:主要内容: 5.1 M5.1 M文件文件 5.2 5.2 函数文件函数文件 5.3 5.3 流程控制流程控制 5.4 5.4 程序调试程序调试* * 5.5 5.5 文件操作文件操作* *2012级级 MATLAB与数学建模与数学建模5.1 M5.1 M文件文件命令行操作时,命令行操作时,Matlab窗口只允窗口只允许一次执行一行上的一个或几个许一次执行一行上的一个或几个语句。语句。在命令窗口输入数据和命令进行计在命令窗口输入数据和命令进行计算时,处理复杂问题和大量数据时算时,处理复
2、杂问题和大量数据时极不方便,极不方便,。因此应使用程序工作模式。因此应使用程序工作模式。即在即在Matlab 窗口下当用户输入单行指令时,窗口下当用户输入单行指令时,Matlab 立即处理这条指令,并显示结果,这就是立即处理这条指令,并显示结果,这就是Matlab命令命令行方式。行方式。2012级级 MATLAB与数学建模与数学建模5.1 M5.1 M文件文件 将将存储成存储成的的文件(称为文件(称为M文件),然后再执行该程序文件,这种文件),然后再执行该程序文件,这种工作模式称为程序文件模式。工作模式称为程序文件模式。2012级级 MATLAB与数学建模与数学建模5.1 M5.1 M文件文件
3、1. 包含包含的文件称为的文件称为M文件,其扩展名文件,其扩展名为为m;2. 如想灵活应用如想灵活应用Matlab去解决实际问题,充分调用去解决实际问题,充分调用Matlab的科学技算资源,就需要编辑的科学技算资源,就需要编辑m文件;文件;3. M文件是文件是,执行程序时逐行,执行程序时逐行运运行程序(行程序(Matlab是解释性的编程语言);是解释性的编程语言);4. M文件文件,但可,但可。2012级级 MATLAB与数学建模与数学建模5.1 M5.1 M文件文件 可用可用建立和编辑建立和编辑M文件!文件!M文件编辑文件编辑/调试器调试器2012级级 MATLAB与数学建模与数学建模5.1
4、 M5.1 M文件文件方法方法2:在:在Matlab命令窗口输入命令:命令窗口输入命令:edit editM文件编辑文件编辑/调试器调试器2012级级 MATLAB与数学建模与数学建模5.1 M5.1 M文件文件方法方法3:打开:打开Word,在,在Word中编辑中编辑M文件,并文件,并将其存成将其存成,以,以命名。命名。2012级级 MATLAB与数学建模与数学建模5.1 M5.1 M文件文件方法方法4:打开写字板,在其中编辑:打开写字板,在其中编辑M文件,并存成纯文本文件,并存成纯文本格式,以格式,以*.m命名。命名。问题:如何在问题:如何在Matlab中中设定默认的设定默认的M文件编辑器
5、?文件编辑器?。设。设定方法:在定方法:在Matlab主界面的菜单主界面的菜单栏点击:栏点击:.,打,打开开对话框。对话框。2012级级 MATLAB与数学建模与数学建模1)c:WinNTsystem32write.exe写字板;写字板;2)d:Program filesofficewinword.exeWord;2012级级 MATLAB与数学建模与数学建模1)一种是)一种是是是,与在命令窗口逐行执行文件中的所有指令,其结果是与在命令窗口逐行执行文件中的所有指令,其结果是一样的。一样的。 ;2)一种是)一种是,接受输入参数,并,接受输入参数,并产生输出结果,返回输出参数。产生输出结果,返回输
6、出参数。2012级级 MATLAB与数学建模与数学建模5.1 M5.1 M文件文件1. 标准的标准的ASCII文本文件文本文件;2. 包含一系列包含一系列Matlab函数和命令(如同在命令窗口输入函数和命令(如同在命令窗口输入的一样);的一样);3. 命令命令按顺序解释执行按顺序解释执行。2012级级 MATLAB与数学建模与数学建模脚本文件的特点:脚本文件的特点:1)脚本文件由两部分组成:)脚本文件由两部分组成:注释部分注释部分和和程序主体程序主体注释,绿色字注释,绿色字程序主体程序主体2012级级 MATLAB与数学建模与数学建模5.1 M5.1 M文件文件2)结构简单,)结构简单,没有输
7、入输出参数没有输入输出参数,只是一些函数,只是一些函数和命令的组合,类似于和命令的组合,类似于DOS下的批处理文件;下的批处理文件;3)可)可直接运行直接运行:在命令窗口输入脚本文件名,就会:在命令窗口输入脚本文件名,就会按顺序执行脚本主体部分的命令,本例最终的结果按顺序执行脚本主体部分的命令,本例最终的结果为绘图:为绘图:2012级级 MATLAB与数学建模与数学建模4)脚本文件对工作空间中的变量进行操作,文件中建立)脚本文件对工作空间中的变量进行操作,文件中建立的变量及执行结果也返回到工作空间中,且这些变量在的变量及执行结果也返回到工作空间中,且这些变量在脚本执行完后仍脚本执行完后仍保存在
8、工作空间中保存在工作空间中,可继续对其进行操,可继续对其进行操作,直到使用作,直到使用clear命令清除它们或命令清除它们或Matlab命令窗口关闭命令窗口关闭为止。为止。2012级级 MATLAB与数学建模与数学建模l input命令命令 提示用户从键盘输入数值、字符串、表达式。提示用户从键盘输入数值、字符串、表达式。input命令的调用格式:命令的调用格式: A=input(提示信息)(提示信息) A=input(提示信息,(提示信息,s)允许用户输允许用户输入字符串入字符串 a=input(a=?)a=?2a = 2 a=input(a=?)a=?in? Error using = in
9、putUndefined function or variable in. a=input(a=?,s)a=?ina = in2012级级 MATLAB与数学建模与数学建模5.1 M5.1 M文件文件例例 求一元二次方程求一元二次方程a2 +bx+c=0的根。的根。l a=input(a=?);l b=input(b=?);l c=input(c=?);l d=b*b-4*a*c;l x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);l disp(x1=,num2str(x(1),x2=,num2str(x(2);l将该程序以将该程序以aa.m文件存盘,然后运行文件存
10、盘,然后运行aa.m文件。文件。2012级级 MATLAB与数学建模与数学建模5.1 M5.1 M文件文件2 pause函数:暂停程序的执行。调用格式: pause(延迟秒数)注:如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。l 3 disp函数:函数:命令窗口输出函数。命令窗口输出函数。l调用格式:调用格式: disp(输出项输出项)l注:输出项为字符串或矩阵。注:输出项为字符串或矩阵。l例如例如l A=Hello,MATLAB;l disp(A)l输出为:输出为: Hello,MATLAB2012级级 MATLAB与数学建模与数学建模1. 与脚本不同,
11、函数犹如一个与脚本不同,函数犹如一个“”,把一些数据送进去,把一些数据送进去经过加工处理,再把结果送出来;经过加工处理,再把结果送出来;2. 从形式上看,与脚本文件不同。函数文件的第一行总是由从形式上看,与脚本文件不同。函数文件的第一行总是由关键字关键字引导的引导的,且函数,且函数。3. 从运行上看,与脚本文件不同。函数文件运行时,从运行上看,与脚本文件不同。函数文件运行时,Matlab为它开辟一个为它开辟一个,由函数执行的命令,由函数执行的命令,以及由这些命令所创建的中间变量,都隐含其中。当文件以及由这些命令所创建的中间变量,都隐含其中。当文件执行完毕,该临时工作空间及其中的变量立即被清除。
12、执行完毕,该临时工作空间及其中的变量立即被清除。2012级级 MATLAB与数学建模与数学建模函数申明行函数申明行H1行行帮助文本帮助文本函数主体(代码)函数主体(代码)5.2 5.2 函数文件函数文件2012级级 MATLAB与数学建模与数学建模5.2 5.2 函数文件函数文件 位于函数文件的首行,用关键字位于函数文件的首行,用关键字function开头,开头,函数名以及输入输出参数都在这一行被定义。函数名以及输入输出参数都在这一行被定义。function y1,y2, = funName ( x1,x2, )函数名函数名输入参数输入参数输出参数输出参数2012级级 MATLAB与数学建模与
13、数学建模即即,也叫第一注释行,它紧跟在申,也叫第一注释行,它紧跟在申明行之后,以明行之后,以,用于,用于,是是。 H1行及其以后的行及其以后的开头的所有注释行构成整开头的所有注释行构成整个在线帮助文本,可通过个在线帮助文本,可通过命令查询到。命令查询到。包括进行运算和赋值操作的所有包括进行运算和赋值操作的所有Matlab程序代码,其程序代码,其中可以有中可以有。5.2 5.2 函数文件函数文件2012级级 MATLAB与数学建模与数学建模 lookfor flipudFLIPUD Flip matrix in up/down direction. help flipudFLIPUD Flip
14、matrix in up/down direction.FLIPUD(X) returns X with columns preserved and rows flippedin the up/down direction. For example, X = 1 4 becomes 3 62 5 2 53 6 1 4 See also FLIPLR, ROT90, FLIPDIM.5.2 5.2 函数文件函数文件2012级级 MATLAB与数学建模与数学建模b. 在函数文件的组成部分中,在函数文件的组成部分中,申明行申明行是一个是一个Matlab函函数所数所必需必需的,其它各部分则不是必需的(
15、可以没的,其它各部分则不是必需的(可以没有);有);c. 编写代码时要养成良好的注释习惯,以方便自己和其编写代码时要养成良好的注释习惯,以方便自己和其它用户调用。它用户调用。a.函数文件名通常由函数文件名通常由函数名函数名再加上再加上扩展名扩展名.m组成。组成。 函数文件名与函数名也可以不相同,当两者不同时,函数文件名与函数名也可以不相同,当两者不同时,调用时使用函数文件名,最好使调用时使用函数文件名,最好使函数文件名和函数函数文件名和函数名相同名相同! 。5.2 5.2 函数文件函数文件2012级级 MATLAB与数学建模与数学建模输出参数输出参数1,输出参数输出参数2,= 函数名函数名(输
16、入参数输入参数1,输入参数输入参数2,)函数函数M文件的函数名和文件名不文件的函数名和文件名不相同时,调用时使用相同时,调用时使用,最好最好!函数调用过程中,输入输出参数函数调用过程中,输入输出参数的顺序和个数必须与函数定义中的顺序和个数必须与函数定义中的一致,即要注意的一致,即要注意。5.2 5.2 函数文件函数文件2012级级 MATLAB与数学建模与数学建模Example:利用函数文件,实现直角坐标(利用函数文件,实现直角坐标(x,y)到)到极坐标(极坐标(r,)的转换。)的转换。function r,theta=tran(x,y)r=sqrt(x2+y2);theta=atan(y/x
17、);函数文件函数文件tran.m x=3; y=4; r,theta=tran(x,y)r = 5theta = 0.9273函数调用函数调用5.2 5.2 函数文件函数文件2012级级 MATLAB与数学建模与数学建模function r,theta=tran(x,y)r=sqrt(x2+y2);theta=atan(y/x);函数文件函数文件translation.m x=3; y=4; r,theta=tran(x,y)? Undefined function or variable tran. x=3; y=4; r,theta=translation(x,y)r = 5theta =
18、 0.92732012级级 MATLAB与数学建模与数学建模函数函数可以按少于可以按少于函数函数M文件中所文件中所定定义的输入和输出变量进行调用义的输入和输出变量进行调用,但,但如果输入和输出变量数目多于函数如果输入和输出变量数目多于函数M文件中文件中function语句所定义的数语句所定义的数目,调用时自动返回一个错误。目,调用时自动返回一个错误。记录调用该函数时输入实参个数记录调用该函数时输入实参个数具有具有可调性可调性通过变量通过变量nargin和和nargout来实现来实现记录调用该函数时输出实参个数记录调用该函数时输出实参个数5.2 5.2 函数文件函数文件2012级级 MATLAB
19、与数学建模与数学建模function fout=charray(a,b,c)if nargin=1 fout=a;elseif nargin=2 fout=a+b;elseif nargin=3 fout=(a*b*c)/2;end三次调用函数文件charray.m,因为输入参数的个数分别是1个、2个、3个,从而执行不同的操作,返回不同的函数值 x=1:3;y=1;2;3;fout1=charray(x)fout2=charray(x,y)fout3=charray(x,y,3)函数文件charray.m5.2 5.2 函数文件函数文件2012级级 MATLAB与数学建模与数学建模fout1
20、= 1 2 3fout2 = 2 4 6fout3 = 21a. nargin、nargout本身本身都是函数都是函数,不是变量,所以它们,不是变量,所以它们不不能显示,也不能被赋值能显示,也不能被赋值。b. 函数可以按函数可以按少于函数少于函数M文件中所规定的输入和输出参数文件中所规定的输入和输出参数个数进行调用个数进行调用,但不能按多于函数,但不能按多于函数M文件中所规定的输文件中所规定的输入和输出参数个数进行调用。入和输出参数个数进行调用。5.2 5.2 函数文件函数文件2012级级 MATLAB与数学建模与数学建模1. 函数有函数有它们自己的它们自己的专用工作空间专用工作空间,它与,它
21、与Matlab的工的工作空间分开;作空间分开;2. 函数内所创建的变量函数内所创建的变量只驻留在函数的工作空间只驻留在函数的工作空间,而,而且只在函数执行期间临时存在,以后就消失,称为且只在函数执行期间临时存在,以后就消失,称为局部变量局部变量。不能从其它函数和。不能从其它函数和Matlab工作空间访问工作空间访问这些变量,因此,从一个调用到下一个调用,利用这些变量,因此,从一个调用到下一个调用,利用局部变量存储信息是不可能的。局部变量存储信息是不可能的。2012级级 MATLAB与数学建模与数学建模3. 函数内部与函数内部与Matlab工作空间之间唯一的联系是函数工作空间之间唯一的联系是函数
22、的的输入和输出变量输入和输出变量;4. 如果一个如果一个预定的变量预定的变量,例如,例如pi,在,在Matlab工作空间工作空间重新定义,它重新定义,它不会延伸到函数的工作空间不会延伸到函数的工作空间。同样,。同样,函数内的重新定义变量不会延伸到函数内的重新定义变量不会延伸到Matlab的工作空的工作空间中。间中。 pi=2pi = 2function mypi=mypimypi=pi; mypi=mypimypi = 3.14165.2 5.2 函数文件函数文件2012级级 MATLAB与数学建模与数学建模5. 函数被调用时,函数只是从输入变量中读入数值,函数被调用时,函数只是从输入变量中读
23、入数值,并不将其加入函数工作区;并不将其加入函数工作区;6. 如果在函数中修改了输入变量的值,该输入变量就如果在函数中修改了输入变量的值,该输入变量就会加入函数工作区;会加入函数工作区;7. 如果在函数定义时,输入参数和输出参数具有相同如果在函数定义时,输入参数和输出参数具有相同的变量名,函数执行时,该变量立即加入函数工作的变量名,函数执行时,该变量立即加入函数工作区;区;5.2 5.2 函数文件函数文件2012级级 MATLAB与数学建模与数学建模5.3 5.3 流程控制流程控制Matlab的的程序结构程序结构顺序结构顺序结构循环结构循环结构分支分支(选择选择)结构结构for循环循环和和wh
24、ile循环循环ifelseendswitchcasetrycatch顺序结构:按照程序中语句的排列顺序依次执行程序分支结构:根据一定条件来执行的各条语句循环结构:被重复执行的一组语句,循环是计算机解决问题的主要手段顺序结构顺序结构2012级级 MATLAB与数学建模与数学建模5.3 5.3 流程控制流程控制if 条件条件 执行语句执行语句end第一种(单分支if语句)若条件不成立,则若条件不成立,则直接执行直接执行ifif语句的语句的后继语句。后继语句。当条件成立时,则执行语句组,当条件成立时,则执行语句组,执行完之后继续执行执行完之后继续执行ifif语句的语句的后继语句后继语句2012级级
展开阅读全文