
1.4 M文件
MATLAB作为一种高级计算机语言,以一种人机交互式的命令行方式工作,还可以像其他计算机高级语言一样进行控制流的程序设计。M文件是使用MATLAB编写的程序代码文件,之所以称为M文件,是因为这种文件都以“.m”作为文件扩展名。
1.4.1 M文件分类
用户可以使用任何文本编辑器或字处理器生成或编辑M文件,但是在MATLAB提供的M文件编辑器中生成或编辑M文件最为简单、方便而且高效。
M文件可以分为两种类型:一种是函数式文件;另一种是命令式文件,也称之为脚本文件。
1. 命令式文件
在MATLAB中,实现某项功能的一串MATLAB语句命令与函数组合成的文件称为命令式文件。这种M文件在MATLAB的工作区内对数据进行操作,能在MATLAB环境下直接执行。命令式文件不仅能够对工作区内已存在的变量进行操作,还能将建立的变量及其执行后的结果保存在MATLAB工作区中,在以后的计算中使用。除此之外,命令文件执行的结果既可以显示输出,也可以使用MATLAB的绘图函数输出图形结果。
由于命令式文件的运行相当于在命令行窗口中逐行输入并运行,所以用户在编制此类文件时,只需要把要执行的命令按行编辑到指定的文件中即可。
在MATLAB主窗口的“主页”选项卡中选择“新建”→“脚本”命令,或直接单击“新建脚本”按钮,即可打开图1-59所示的MATLAB文件编辑器。在空白窗口中编写程序即可。

图1-59 “编辑器”窗口
例1-10:生成矩阵。
解:输入下面的简单程序mm.m。


单击“编辑器”选项卡中的“保存”按钮,在弹出的“保存为”对话框中,选择保存文件夹,文件的扩展名必须是. m,单击“保存”按钮即可保存文件。
在运行函数之前,一定要把M文件所在的目录添加到MATLAB的搜索路径中,或者将函数文件所在的目录设置成当前目录。
使mm.m所在目录成为当前目录,或让该目录处在MATLAB的搜索路径上。然后在MATLAB命令行窗口中运行以下指令,便可得到M文件的输出结果。

2. 函数式文件
MATLAB函数通常是指MATLAB系统中已设计好的完成某一种特定运算或实现某一特定功能的一个子程序。MATLAB函数或函数文件是MATLAB中最重要的组成部分,MATLAB提供的各种各样的工具箱几乎都是以函数形式给出的,是内容极为丰富的函数库,可以实现各种各样的功能。这些函数作为命令使用,所以函数有时又称为函数命令。
MATLAB中的函数即函数文件,是能够接受输入参数并返回输出参数的M文件,标志是文件内容的第一行为function语句。在MATLAB中,函数名和M文件名必须相同,函数式文件可以有返回值,也可以只执行操作而无返回值。
值得注意的是,命令式M文件在运行过程中可以调用MATLAB工作域内的所有数据,并且所产生的所有变量均为全局变量。也就是说,这些变量一旦生成,就一直保存在内存空间中,直到用户执行命令clear或quit时为止。而在函数式文件中的变量除特殊声明外,均为局部变量,函数式文件执行之后,只保留最后的结果,不保留任何中间过程,所定义的变量也只在函数的内部起作用,并随着调用的结束而被清除。
例1-11:验证两个数是否相等。
解:1)创建函数文件“equal_ab.m”。


2)调用函数。


1.4.2 文件编辑器
“主页”选项卡是MATLAB一个非常重要的数据分析与管理窗口。它的主要按钮功能如下。
◆“新建脚本”按钮:新建一个M文件。
◆“新建实时脚本”按钮:新建一个实时脚本,如图1-60所示。
◆“打开变量”按钮:打开所选择的数据对象。单击该按钮之后,进入图1-61所示的变量编辑窗口,在这里可以对数据进行各种编辑操作。

图1-60 实时编辑器窗口

图1-61 变量编辑窗口