Presentation is loading. Please wait.

Presentation is loading. Please wait.

第二单元 第3课 Matlab命令执行方式 1.Matlab命令执行方式 2.程序调试.

Similar presentations


Presentation on theme: "第二单元 第3课 Matlab命令执行方式 1.Matlab命令执行方式 2.程序调试."— Presentation transcript:

1 第二单元 第3课 Matlab命令执行方式 1.Matlab命令执行方式 2.程序调试

2 1. Matlab命令的执行方式 1、交互式命令执行方式(命令窗口) 2、M文件的程序执行方式
(1)用Matlab语言编写的程序,称为M文件:是由若干Matlab命令组合在一起构成的,它可以完成某些操作,也可以实现某种算法。    M文件根据调用方式的不同分为两类:         命令文件(Script File)         函数文件(Function File)    它们的扩展名都是.m

3 (2)命令文件没有输入参数,也不返回输出参数;函数文件可以带输入参数,也可以返回输出参数。命令文件对工作空间中的变量进行操作,文件中所有命令的执行结果也返回工作空间中;函数文件中定义的变量为局部变量,当函数文件执行完毕时,这些变量也被清除。命令文件可以直接运行;函数文件不能直接运行,要以函数调用的方式来调用它。

4 例7.1  :命令文件: clear; a = 1:10; b = [11,12,13,14;15,16,17,18]; c = a; a = b; b = c; a b 3、M文件的建立与打开 M文件是一个文本文件,可以用任何编辑程序来建立和编辑,一般最常用的是使用Matlab提供的文本编辑器。该编辑器是一个集编辑和调试于一体的工作环境。

5 4、函数文件的基本结构 函数文件由function语句引导,其基本结构为: function  输出形参表 = 函数名(输入形参表)            注释说明部分            函数体语句 end   其中,以function开头的一行为引导行,表示该M文件是一个函数文 件。当输出形参多于一个时,应该用方括号括起来。

6 说明: (1).关于函数文件名     函数文件名通常由函数名再加上扩展名.m组成。     当函数文件名与函数名不同时,Matlab将忽略函数名而确认文件名     因此调用时使用函数文件名。

7 (2). 关于注释说明部分     注释说明包括3部分:    ① 紧随引导行之后以%开头的第一注释行。         这一行一般包括大写的函数文件名和函数功能简要描述,供lookfor关键词查询和help在线帮助时使用。    ② 第一注释行及之后连续的注释行。       通常包括函数输入/输出参数的含义及调用格式说明等信息,构成全部在线帮助文本。   ③与在线帮助文本相隔一空行的注释行。      包括函数文件编写和修改的信息,如作者和版本等。

8 (3)、关于return语句          如果在函数文件中插入了return语句,则执行到该语句就结束函数      的执行,流程转至调用该函数的位置。通常也不使用return语句。 例7.2 :函数文件 %fexch.m function [a,b] = exch(a,b)     c = a; a = b; b = c; end

9 (4)、函数调用 函数调用的一般格式是:  [输出实参表] = 函数名(输入实参表)  注意:函数调用时,各实参出现的顺序、个数,应与函数定义时相同。 %将例7.2函数文件以文件名fexch.m保存,然后在命令窗口调用该函数文件: clear; x = 1:10; y = [11,12,13,14;15,16,17,18]; [x,y] = fexch(x,y)

10 (5)函数的嵌套调用 在Matlab中,函数可以嵌套调用,即一个函数可以调用别的函数。一个函数调用自身称为函数的递归调用。  例7.3 利用函数的递归调用,求n!。   n!本身就是以递归的形式定义的: function f = factor(n)  if n<=1      f = 1;  else      f = factor(n-1)*n;  %递归调用求(n-1)!  end

11 (6)函数的嵌套调用 例7.4 在命令文件中调用例6.3函数文件,求s=1!+2!+3!+4!+5!的程序:    s = 0;   for i = 1:5         s = s + factor(i);   end   s

12 (6)函数参数的可调性    Matlab在函数调用上有一个与一般高级语言不同之处:  函数所传递参数数目的可调性,即参数的数量可以改变。在调用函数时Matlab用两个预定义变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数。

13 例7.5 nargin用法示例  函数文件examp.m:  function fout = charray(a,b,c)  if nargin == 1      fout = a; end  if nargin == 2      fout = a+b; if nargin == 3      fout = (a*b*c)/2;  end

14 5、全局变量与局部变量 Matlab中,函数文件中的变量是局部变量。如在若干函数中,都把某一变量定义为全局变量,那么这些函数将共用这个变量。全局变量的作用域是整个Matlab的工作空间,所有函数都可以对它进行存取和修改。   

15 全局变量用global命令定义,格式为:
 例7.6 全局变量应用示例。  先建立函数文件wadd.m,该函数将输入的参数加权相加:  function f = wadd(x,y)                                            global ALPHA,BETA                                            f = ALPHA*x + BETA*y;  end     

16 在命令窗口中输入:               global ALPHA BETA        ALPHA = 1; BETA =2; s = wadd(1,2) 输出为:s =        5

17 3.程序调试 1、程序调试概述 程序调试是程序设计的重要环节,也是程序设计人员必须掌握的重要技能。Matlab提供了相应的程序调试功能,即可以通过文本编辑器对程序进行调试,又可以在命令窗口结合具体的命令进行。   一般说来,应用程序的错误有两类,一类是语法错误,另一类是运行时的错误。语法错误,给出相应的错误信息,并标出错误在程序中的行号。

18 例7.7: 输入下列程序:   A = 87;   B = 9.3;   C = A+*B;   系统将给出错误信息: ???Error: File: Untitled1.m Line: 3 Column: 7 UnexpectedMATLAB operator. 通过分析Matlab给出的错误信息,不难排查程序中的语法错误。

19 2、Matlab调试菜单 尽管Matlab对程序逻辑错误时无能为力的,不会给出任何提示信息,但还是可以通过调试手段来发现。 采取的方法如下: ①将程序的一些主要中间结果输出到命令窗口,从而确定错误的区段。 ② 使用Matlab的调试菜单(debug),通过图像界面操作来实现程序调试。  step:单步运行,不进入函数;  step in: 单步运行,进入函数;  step out:停止单步运行;  save and run:存储文件并开始运行。

20 stop if error/warnings: 断点操作,在程序执行出现错误或警告时,停止程序运行,进入调试状态。
③或使用命令方式来实现程序

21 例7.8程序的调试  有一个求水仙花数的程序ex.m,试设置断点来控制程序执行。 调试步骤如下: ① 在if语句处设置断点:将插入点移至if语句所在行,选择Debug菜单的      Set/Clear Breakpoint命令,在该行前面有一个红色圆点,程序运行时      将在断点处暂停。 ② 运行程序,检查中间结果。在命令窗口输入命令:      ex      在窗口命令的K>>后输入变量名,检查变量的值。可以分析判断程序 的正确性。

22 ③ 选择Debug菜单中的Continue命令,程序继续运行,在断点处又暂停,再检查变量的值,一直到发现问题为止。
④ 切换工作空间,结束对程序的调试。打开编辑窗口中的Stack下拉列表框,从中选择Base,即将工作空间切换到主工作空间。然后选择Debug菜单中的Set Clear Breakpoint 命令清楚已设置的断点,在选择Continue命令,去除白色箭头,完成调试。

23


Download ppt "第二单元 第3课 Matlab命令执行方式 1.Matlab命令执行方式 2.程序调试."

Similar presentations


Ads by Google