![MATLAB Simulink 2020系统仿真从入门到精通](https://wfqqreader-1252317822.image.myqcloud.com/cover/221/44175221/b_44175221.jpg)
2.3.1 M文件分类
用户可以使用任何文本编辑器或字处理器生成或编辑M文件,但是在MATLAB提供的M文件编辑器中生成或编辑M文件最为简单、方便而且高效。
M文件可以分为两种类型:一种是函数式文件;另一种是命令式文件,也称为脚本文件。
1.命令式文件
在MATLAB中,实现某项功能的一串MATLAB语句命令与函数组合成的文件称为命令式文件。这种M文件在MATLAB的工作区内对数据进行操作,能在MATLAB环境下直接执行。命令式文件不仅能够对工作区内已存在的变量进行操作,还能将建立的变量及其执行后的结果保存在MATLAB工作区中,在以后的计算中使用。除此之外,命令文件执行的结果既可以显示输出,也可以使用MATLAB的绘图函数输出图形结果。
由于命令式文件的运行相当于在命令行窗口中逐行输入并运行,所以用户在编制此类文件时,只需要把要执行的命令按行编辑到指定的文件中即可。
![](https://epubservercos.yuewen.com/9B02D1/23446275609890206/epubprivate/OEBPS/Images/29_01.jpg?sign=1739309688-Ahcbn3UkFikddvk9CIDz8sniRzxHB2fI-0-b5aa20dbcd9c096eecfb217f38b71b93)
图2-23“编辑器”窗口
在MATLAB主窗口的“主页”选项卡中选择“新建”→“脚本”命令,或直接单击“新建脚本”图标按钮,即可打开如图2-23所示的MATLAB文件编辑器。在空白窗口中编写程序即可。
例2-1:生成矩阵。
解:输入下面的简单程序mm.m。
![](https://epubservercos.yuewen.com/9B02D1/23446275609890206/epubprivate/OEBPS/Images/29_03.jpg?sign=1739309688-5pXGc3lba7BsJtZlIun8F1whtk0dnBJj-0-aee13284100ce71a0959bc31352d1fa0)
![](https://epubservercos.yuewen.com/9B02D1/23446275609890206/epubprivate/OEBPS/Images/29_04.jpg?sign=1739309688-BPmkT6VPm810HrBrzG7xIVsoUnpU5cZU-0-2516f5033c81d64e6093bd7df2eb1a55)
%后面的内容为注释内容,函数运行时,这部分内容是不起作用的,可以使用help命令查询。为保持程序的可读性,应该建立良好的书写风格。
单击“编辑器”窗口中的“保存”图标按钮,在弹出的“保存为”对话框中,选择保存文件夹,文件的扩展名必须是“.m”,单击“保存”按钮即可保存文件。
在运行函数之前,一定要把M文件所在的目录添加到MATLAB的搜索路径中,或者将函数文件所在的目录设置成当前目录。
使mm.m所在目录成为当前目录,或让该目录处在MATLAB的搜索路径上,然后在MATLAB命令行窗口中运行以下命令,便可得到M文件的输出结果。
![](https://epubservercos.yuewen.com/9B02D1/23446275609890206/epubprivate/OEBPS/Images/29_06.jpg?sign=1739309688-aQq78zt0xDwFlrIy1mPfBiKugBa3gbTm-0-71d2556534589d7d705b6273b069ee99)
![](https://epubservercos.yuewen.com/9B02D1/23446275609890206/epubprivate/OEBPS/Images/30_01.jpg?sign=1739309688-4brSKDeZpeXhMwVqU2a5bIyvilNaF9im-0-46513141b91eb67ab34f5214982b54dc)
2.函数式文件
MATLAB函数通常是指MATLAB系统中已设计好的能够完成某一种特定的运算或实现某一特定功能的一个子程序。MATLAB函数或函数文件是MATLAB中最重要的组成部分,MATLAB提供的各种各样的工具箱几乎都是以函数形式给出的,是内容极为丰富的函数库,可以实现各种各样的功能。这些函数作为命令使用,所以函数有时又称为函数命令。
MATLAB中的函数(即函数文件)是能够接受输入参数并返回输出参数的M文件,标志是文件内容的第一行为function语句。在MATLAB中,函数名和M文件名必须相同,函数式文件可以有返回值,也可以只执行操作而无返回值。
值得注意的是,命令式M文件在运行过程中可以调用MATLAB工作域内的所有数据,并且所产生的所有变量均为全局变量。也就是说,这些变量一旦生成,就一直保存在内存空间中,直到用户执行命令clear或quit时为止。而在函数式文件中的变量除特殊声明外,均为局部变量,函数式文件执行之后,只保留最后的结果,不保留任何中间过程,所定义的变量也只在函数的内部起作用,并随着调用的结束而被清除。
例2-2:验证两个数是否相等。
解:1)创建函数文件equal_ab.m。
![](https://epubservercos.yuewen.com/9B02D1/23446275609890206/epubprivate/OEBPS/Images/30_02.jpg?sign=1739309688-M6lJ9l9eYVwhU78cv4TaoyJLTUd057Yg-0-fbed75a9eeb7ae9edc31af65ff467af8)
![](https://epubservercos.yuewen.com/9B02D1/23446275609890206/epubprivate/OEBPS/Images/30_03.jpg?sign=1739309688-dfF4NH8MVUBkoQIfId5zHNRYg3WfMowL-0-7701198fc1adbf44ea08031fa3ae8265)
2)调用函数。
![](https://epubservercos.yuewen.com/9B02D1/23446275609890206/epubprivate/OEBPS/Images/30_04.jpg?sign=1739309688-h5sHw0A7kNgo6DnLYFjjIG39Xey8LCf8-0-d9f173e34c0a1bc94bd3bcbc497dc22a)