1.3.1 M文件
M文件是一个脚本文件,文件名必须以“.m”为扩展名,文件名不能为汉字或数字开头。M文件可以由任意的文本编辑软件来编辑。M文件根据调用方式的不同分为两种类型:脚本(script)文件和函数(function)文件。脚本文件是MATLAB命令或函数的组合,没有输入/输出参数,脚本文件可以访问MATLAB工作空间中的所有数据,在运行过程中产生的变量均是全局变量,这些变量一旦生成就一直保存在内存空间中,另外,脚本文件可以直接运行,在MATLAB命令行窗口输入脚本文件的名字,就会顺序执行脚本文件中的命令,如例1-4所示。
【例1-4】执行脚本文件myvoice.m中的命令。
函数文件不能直接运行,需要以函数调用的形式来调用它,函数文件可以有输入参数,也可以返回输出参数,它的第一条可执行语句是以function引导的定义语句。在函数文件中的变量都是局部变量,函数文件一旦执行完毕,这些变量就自动消失。
函数文件第一行是函数定义行,其格式为:
需要注意的是,有无函数定义行是区分命令文件与函数文件的重要标志,函数体包含所有函数程序代码,是函数的主体部分,函数文件保存的文件名应与用户定义的函数名一致,在命令行窗口中以固定格式调用函数。
例如:函数f(x,y,z)=X2y+xZ2-2yz,请计算f(1,2,3)。在编辑器中编辑程序:
保存为test(文件名必须与函数名一致),然后在命令窗口中输入:
MATLAB允许在函数调用时同时返回多个变量。而一个函数又可以由多种格式进行调用,例如bode()函数可以由下面的格式调用。
其中bode()函数用来求取或绘制系统的Bode图,而系统在这里由传递函数分子num和分母den表示,还可以用下面的格式调用此函数。
其中(A,B,C,D)为系统的状态方程模型。尽管两种调用格式是完全不同的,MATLAB函数还是会自动识别到底是采用哪种格式调用该函数,从而得出正确的结论。
另外,MATLAB 2016a以后的版本提供了实时脚本(live script)功能,其实时编辑器提供一种新的方式来创建、编辑和运行MATLAB程序,实时脚本文件的扩展名为“.mlx”,除了基本的程序代码,还可以包含格式化文本、方程式、超链接和图像等,而且运行时能实时显示输出结果,增强了程序的描述效果。