当前位置:文档之家› MatLab与控制系统仿真(重点编程)

MatLab与控制系统仿真(重点编程)

MatLab与控制系统仿真(重点编程)
MatLab与控制系统仿真(重点编程)

第 4 章 MatLab 的程序设计

MatLab 是一个工具、开发平台,同时它也是一门编程语言。与在命令窗口用交互的方式工作相比,通过程序运行来解决实际问题,其效率更高,因此,凡是复杂的、大型的应用都是以程序的方式执行。相对其它高级语言, MatLab 更简单、编程的效率更高、调试过程也更容易。

MatLab 中的程序文件是以 m 为后缀,所以通常将 MatLab 的程序文件称为 m 文件。MatLab提供了两种形式的m文件,即:脚本(Script)式m文件(就简称m文件)、函数型 m 文件。在 MatLab 中已经嵌入了一个功能强大的集成开发环境—— m 文件编辑器,用它来进行程序的编辑、修改、调试、运行等,完成应用开发工作。

4.1 MatLab 程序设计基础

通过前面内容的学习,大家对 MatLab 已经有了一个初步的认识和印象,到目前为止,我们都是在“命令”窗口中,以交互的方式运行,完成我们的工作。实际上简单的m 文件,就是一个批处理程序,它是若干条命令的集合。

例:

4.1.1 M 文件规则和属性

函数 M 文件必须遵循一些特定的规则。除此之外,它们有许多的重要属性,这其中包括:

1. 函数名和文件名必须相同。例如,函数 fliplr 存储在名为 fliplr.m 文件中。

2. MATLAB 头一次执行一函数个 M 文件时,它打开相应的文本文件并将命令编辑成存储器的内部表示,以加速执行以后所有的调用。如果函数包含了对其它函

数 M 文件的引用,它们也同样被编译到存储器。普通的脚本 M 文件不被编译,即使它们是从函数 M 文件内调用;打开脚本 M 文件,调用一次就逐行进行注释。

3. 在函数 M 文件中,到第一个非注释行为止的注释行是帮助文本。当需要帮助时,返回该文本。例如, ? help fliplr 返回上述前八行注释。

4. 第一行帮助行,名为 H1 行,是由 lookfor 命令搜索的行。

5. 函数可以有零个或更多个输入参量。函数可以有零个或更多个输出参量。

6. 函数可以按少于函数 M 文件中所规定的输入和输出变量进行调用,但不能

用多于函数M文件中所规定的输入和输出变量数目。如果输入和输出变量数目多于

函数M文件中function语句一开始所规定的数目,则调用时自动返回一个错误。

相对于函数m文件,脚本式m文件就简单多了,它没有严格的格式要求,只要将有关的命令或函数一一敲入即可,但是还是有几个问题需要注意:

1. m文件的名称不得与MatLab的内部函数同名、第一个字符不得为数字(这点与变量的命名规则相同);

2. 最好在文件的头部加上注释,对该m文件的作用、功能作一个简要说明,而在一些重要命令行后也加上注释行,以方便使用者阅读、查找;

3. 要特别注意m文件的保存路径或位置,如果不是保存在MatLab默认的路径下,可以使用addpath函数来设置、添加路径,否则,m文件不能运行。

脚本式m文件与函数m文件还有一个重要区别:脚本式m文件中的变量均为全局变量,而函数m文件中的变量则是局部变量。这可以从这两种程序文件运行后在Workspace 中留下痕迹看出。当然,在函数m文件中也可以专门将某些变量定义为全局变量(关键字是:global)。不过,在使用全局变量(函数 m文件中)时应特别注意:

①.全局变量需要函数体的变量赋值语句之前定义或说明;

②.全局变量名最好是大写,而且要尽量长,能反映它本身的含义;

③?实际编程时,全局变量也要尽可能少用,因为一旦它在一个地方被改变,那么其它包括该变量的函数中都得改变,有时可能会出现意想不到情况。

4.1.2 M文件的组成

函数M文件实例:

function f=fact (n)%函数定义行

%Compute a factorial value %H1 行

%FACT ( N)return the factorial of N,

%usually denoted by N

%Put simply,FACT ( N)is PROD ( 1:N)%帮助文本%注释

相关主题
文本预览
相关文档 最新文档