函数是可以定义输入参数或返回输出变量的M文件。M文件的名称和函数名称必须一致。从形式和句型格式上来看,函数文件的第一句总是以“function”所引导的“函数声明行”。
该行还会罗列该函数的所有“标称”的输入/输出的变量名称。函数文件对输入/输出的变量的数量并没有限制,可以完全没有输入/输出变量,也可以是任意数目的组合。
与脚本文件不同的是,在MATLAB中,函数文件类似一个“黑匣子”,从外界无法看到其内部的运算流程,而只能看到其输入的参数的运算结果。这种函数文件的主要特点如下:
(1)MATLAB在实现对函数的调用时,允许使用比“标称”数目更少的输入/输出变量。
(2)从运行上看,与脚本文件运行不同的是,每当函数文件运行时,MATLAB就会专门为它打开一个临时的工作区(Context工作区),该空间也被称为函数工作区(Function工作区),函数运行中产生的所有中间变量都存放在函数工作区中。
每执行完文件最后一条指令或遇到return指令时,就结束该函数文件的执行,同时该临时的函数空间及其保存的所有中间变量就立即被清除。函数只执行自己工作区内的变量,对于超越工作范围的变量,则需要使用MATLAB命令提示符。
M文件的一般结构
从结构上来看,脚本文件只是比函数文件少了一“函数声明行”,除此之外,二者的语法及结构均相同。于是将典型规范的M文件函数的结构总结如下:
(1)函数声明行:位于函数文件的首行,以MATLAB关键字function开头,定义函数名称的输入/输出变量,脚本文件无需函数声明行。
(2)H1行:紧随函数声明行之后的以“%”开头的第一注释行。H1行包括大写的函数文件名和运用关键词简要描述的函数功能。该函数提供lookfor命令作为作为关键词查询和help在线提供的使用。
说明:
(1)函数定义名应和文件保存名依次。当两者不一致时,MATLAB将忽视文件首行的函数定义名,而以文件保存名为准。
(2)MATLAB中的函数文件名必须以字母开头,可以是字母,下划及数字的任意组合,但不可以超过31个字符。
(3)在编写H1行注释时,尽量采用英文表达方式,这是为了之后的使用过程中关键词检索的方便。