资源描述:
《matlab第3章 程序设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三节matlab的程序设计——matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易。是matlab重要组成部分。第三章MATLAB数值计算m文件简介用户如想灵活应用matlab去解决实际问题,充分调用matlab的科学技术资源,就需要编辑m文件包含matlab语言代码的文件称为m文件,其扩展名为m。编辑m文件可使用各种文本编辑器。一、matlab的工作模式指令驱动模式通常matlab以指令驱动模式工作,即在matlab窗口下当用户输入单行指令时,matlab立即处理这条指令,并显示结果,这就是matlab命令行方式。命令行操
2、作时,matlab窗口只允许一次执行一行上的一个或几个语句。例如:x1=0:10x1=012345678910x2=0:3:11x2=0369x3=11.5:-3:0x3=11.50008.50005.50002.5000x1=0:10,x2=0:3:11,x3=11.5:-3:0x1=012345678910x2=0369x3=11.50008.50005.50002.5000在matlab窗口输入数据和命令进行计算时,当处理复杂问题和大量数据时是不方便的。因此应编辑m文件。命令行方式程序可读性差,而且不能存储,对于复杂的问题,应编写成能存储的程序
3、文件。m文件模式将matlab语句构成的程序存储成以m为扩展名的文件,然后再执行该程序文件,这种工作模式称为程序文件模式。程序文件不能在指令窗口下建立,因为指令窗口只允许一次执行一行上的一个或几个语句。二、MATLBA程序的基本设计原则1、%后面的内容是程序的注解,要善于运用注解使程序更具可读性。2、养成在主程序开头用clear指令清除变量的习惯,以消除工作空间中其他变量对程序运行的影响。但注意在子程序中不要用clear。3、参数值要集中放在程序的开始部分,以便维护。要充分利用MATLAB工具箱提供的指令来执行所要进行的运算,在语句行之后输入分号使其
4、中间结果不在屏幕上显示,以提高执行速度。4、input指令可以用来输入一些临时的数据;而对于大量参数,则通过建立一个存储参数的子程序,在主程序中用子程序的名称来调用。5、程序尽量模块化,也就是采用主程序调用子程序的方法,将所有子程序合并在一起来执行全部的操作。7、设置好MATLAB的工作路径,以便程序运行。三、M文件的编辑及MATLAB工作路径的设置在编辑环境中,文字的不同颜色显示表明文字的不同属性。绿色:注解;黑色:程序主体;红色:属性值的设定;蓝色:控制流程。在运行程序之前,必须设置好MATLAB的工作路径,使得所要运行的程序及运行程序所需要的其
5、他文件处在当前目录之下,只有这样,才可以使程序得以正常运行。否则可能导致无法读取某些系统文件或数据,从而程序无法执行。通过cd指令在命令窗口中可以更改、显示当前工作路径。通过路径浏览器也可以进行设置四、MATLAB的程序类型MATLAB的程序类型有三种:一种是在命令窗口下执行的脚本M文件;另外一种是可以存取的M文件,也即程序文件;最后一种是函数(function)文件。1、脚本M文件在命令窗口中输入并执行,它所用的变量都要在工作空间中获取,不需要输入输出参数的调用,退出MATLAB后就释放了。2、程序文件以.m格式进行存取,包含一连串的MATLAB指
6、令和必要的注解。需要在工作空间中创建并获取变量,也就是说处理的数据为命令窗口中的数据,没有输入参数,也不会返回参数。程序运行时只需在工作空间中键入其名称即可。M文件的调试:3、函数文件同样以.m格式存取,但文件名必须与函数名相同,函数接受输入参数,然后执行并输出结果。用help命令可以显示它的注释说明。具有标准的基本结构。(1)函数定义行(关键字function)function[out1,out2,..]=filename(in1,in2,..)输入和输出(返回)的参数个数分别由nargin和nargout两个MATLAB保留的变量来给出。(2)第
7、一行帮助行,即H1行以(%)开头,作为lookfor指令搜索的行(3)函数体说明及有关注解以(%)开头,用以说明函数的作用及有关内容如果不希望显示某段信息,可在它的前面加空行(4)函数体语句函数体内使用的除返回和输入变量这些在function语句中直接引用的变量以外的所有变量都是局部变量,即在该函数返回之后,这些变量会自动在MATLAB的工作空间中清除掉。如果希望这些中间变量成为在整个程序中都起作用的变量,则可以将它们设置为全局变量。Functiony=fun1(x)globalkc,bc,r,P,N,b,wd,k;y=N(k,r).*exp(-kc
8、.*P(k,r).*(b-x)).*sin(wd(k,r).*(b-x))/wd(k,r);函数m文件的格式