03 程序设计_免费下载.ppt_第1页
03 程序设计_免费下载.ppt_第2页
03 程序设计_免费下载.ppt_第3页
03 程序设计_免费下载.ppt_第4页
03 程序设计_免费下载.ppt_第5页
已阅读5页,还剩14页未读, 继续免费阅读

03 程序设计_免费下载.ppt.ppt 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,使用MATLAB语言编写的程序称为M文件,其文件扩展名均为“.m”。它可分为脚本(Scripts)文件和函数 (Function)文件。,第三章 MATLAB程序设计,MATLAB工作模式,一、M文件,指令驱动模式:在命令窗口下输入指令, MATLAB立即处理这些指令,并显示结果。 M文件模式:将MATLAB语句构成的程序存储成以m为扩展名的文件,然后再执行该程序文件。,2,1、M文件的建立: 菜单操作:MATLAB命令窗口的File菜单 New菜单项 M-file命令。 命令操作:在MATLAB命令窗口输入命令edit。 命令按钮操作:单击MATLAB命令窗口工具栏上的“新建”命令按钮。

2、,二、M文件的创建与编辑,编辑器通常用颜色来区分程序内容的类别: 黑色程序主体部分; 绿色注释部分; 紫色属性值设定或标识部分; 蓝色控制流程,比如for, ifthen等语句。,3,2、M文件的打开: 菜单操作:MATLAB命令窗口的File菜单 Open菜单项 选择所需打开的M文件。在文档窗口可以对打开的M文件进行编辑修改。 命令操作:在MATLAB命令窗口输入命令edit+文件名,则可打开指定的M文件。 命令按钮操作:单击MATLAB命令窗口工具栏上的“Open files”命令按钮,再从弹出的对话框中选择所需打开的文件。,注意:所创建的m文件必须纳入matlab搜索路径后,才能在mat

3、lab命令窗口运行。,4,脚本文件是由实现某项功能的一系列语句命令与函数组合成的M文件,也称为命令文件。脚本文件没有输入参数,也没有输出参数。执行脚本文件时,文件中的指令或者命令按照出现在脚本文件中的顺序依次执行。,三、脚本文件,脚本文件主要由注释行和代码行组成。 注释行需要使用%定义符;代码行则是一些简单的MATLAB指令或命令,命令可以完成相应的计算处理数据、绘制图形结果的操作,可以在脚本文件中调用其他的函数完成复杂的数学运算。,5,四、函数文件,特定规则: 函数m文件首行必须以关键字function开头,如果返回变量只有一个,方括号可以省略。如果函数有多个输入或返回变量,则多个变量之间用

4、英文状态下的逗号加以分隔。 函数名的命名规则与变量的命名规则相同。 m文件的文件名最好是 .m。,函数文件的格式: function 返回变量 = 函数名(输入变量) %注释说明语句段 程序语句段 end,6,例: 编写函数文件求x的阶乘。,%计算x的阶乘的函数 function p=jc(x) p=1; for i=1:x p=p*i; end end,脚本文件中的所有变量都是全局变量,而函数文件中的变量却是局部变量,只在函数运行期间有效,函数返回后,局部变量会自动在工作空间中消除掉。,函数调用的一般格式为: 输出变量=函数名(输入变量) 调用函数前,必须先进入该函数所在的目录或用命令标出函

5、数所在的位置。,7,五、流程控制,matlab语言的程序结构与其它高级语言一样,分为顺序,循环和选择三大基本结构。 顺序结构 按照从上至下的顺序依次执行程序的各条语句。 循环结构 就是在程序中某一条语句或多条语句重复多次的运行。 选择结构 依照不同的判断条件进行判断,然后根据判断的结果选择某一种方法来解决某一个问题。,8,1、循环语句,MATLAB中有两种循环语句:forend 语句和whileend语句。,forend:用于循环次数已经确定的情况,其调用格式为:,for 循环变量=表达式1:表达式2:表达式3 循环体语句 end,%其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式

6、3的值为循环变量的终值。步长为1时,表达式2可以省略。对于正的步长,当变量大于表达式3时结束循环,对于负的步长,当变量小于表达式3时结束循环。,9,whileend:用于循环次数不确定的情况,其调用格式为:,while 条件表达式 循环体语句 end,sum=0; i=1; while i=100 sum=sum+i; i=i+1; end sum,例:用while循环求1100间整数的和。,%表达式一般是由逻辑运算和关系运算以及一般运算组成的,以判断循环的进行和停止;只要表达式的值非0,继续循环;直到表达式值为0,循环停止。,10,2、条件语句,单分支if语句:,if 条件 语句组 end,

7、双分支if语句:,if 条件 语句组1 else 语句组2 end,%当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行end后面的语句。,11,x=input (x=); if x=10 y=cos(x+1)+sqrt(x2+1); else y=x* sqrt (x+ sqrt (x); end disp (y);,12,多分支if语句:,if 条件1 语句组1 elseif 条件2 语句组2 elseif 条件n 语句组n else 语句组n+1 end,x=input (x=); if x =2 y=x+(x-2); elseif x = 0 y=x-(x-

8、2); else y=-x-(x-2); end disp (y);,例:计算函数 的值。,13,switch 开关表达式 case 表达式1 语句组1 case 表达式2 语句组2 otherwise 语句组n end,%当开关表达式的值等于case语句后的条件时,程序转移到该语句去执行,执行完后直接跳出开关体,执行end后的语句。程序的执行结果与各个case的语句次序无关。当case后所有表达式都不等于开关表达式时,程序将执行otherwise后的语句组。,3、开关语句,14,例:根据变量 num 的值来决定显示的内容。,num=input(请输入一个数); switch num case

9、 -1 disp (I am a teacher.); case 0 disp (I am a student.); case 1 disp (You are a teacher.); otherwise disp (You are a student.); end,15,4、流程控制语句,break:用来终止当前循环。可以中断for语句,也可以中断while语句。循环体内设置的条件必须在break指令之前。对于嵌套的循环结构,break指令只能退出包含它的最内层循环。 continue指令:用来中断本次的循环体,将程序的流程跳转到判断循环条件的语句处,继续下一次的循环。 return指令:用

10、来终止本次函数调用,返回到上级调用函数。return指令既可以用在循环体内,也可用在非循环体内。,16,六、M文件调试,应用程序的错误有两类:一类是语法错误;另一类是逻辑错误,指程序运行过程中得到的结果不是用户需要的结果。,与调试(Debug)有关的菜单项及按钮:,Set/Clear Breakpoint:设置/清除光标处的断点; Clear All Breakpoint:清除程序中的所有断点; Stop if Error/ Warning:运行至结束(自动断点); Run:执行程序至结束遇到断点; step:单步执行程序; Step In:深入下层局部工作区; Continue:恢复程序运行

11、至结束或另一个断点。,1、调试器的使用,17,应用与调试M文件的指令,2、调试命令,18,dbstop:设置断点;调用格式有:dbstop at in :在指定文件的指定行处设置断点; dbstop in :在指定文件的第一个可执行处设置断点; dbstop if error:在任何运行出错时产生中断(不包括语法错误)。出错中断后用户不能恢复程序; dbstop if naninf/infnan:当出现Inf或nan值时产生中断。 dbcont:用来恢复对于执行dbstop指令而导致中断的程序。一旦遇到其它已设置的断点或出现错误,就返回基本工作空间; dbstep:用于执行一行或多行代码。在调试模式下,dbstep允许用户实现逐行跟踪; dbstack:列出调用关系。在调试模式下,此指令显示当前的文件名及中断点的行号,其调用者的、调用者的调用者的文件名和断点行号,直到最外层的文件。 dbstatus:用来列出全部断点。dbstatus (filename)可旬出指定文件的全部断点。,19,dbtype:用来显示带行号的文件内容,以协助用户设置断点,它有两种格式:dbtype (文件名):列出指定文件的全部内容,每行前带行号; dbtype :列出指定文件自起始行号到末行行号部分的内容。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论