MATLAB中M函数文件的构成特点与基本结构
1)一般性说明
与脚本文件不同。函数文件(Function file)犹如一个“黑箱”。从外界只能看到传给它的输入量和送出来的计算结果,而内部运作可以藏而不见,其特点如下。
从形式上看,与脚本文件不同,函数文件的第一行总是以“function”引导的“函数声明行”(Function declaration line),该行还罗列出函数与外界交换数据的全部“标称”输入输出量。输入输出量的“数目”并没有限制,既可以完全没有输入输出量,也可以有任意数目的输入输出量。
MATLAB允许使用比“标称数目”少的输入输出量,实现对函数的调用。
从运行上看,与脚本文件运行不同,每当函数文件运行,MATLAB就会专门为其开辟一个临时工作空间,该空间称之为函数工作空间(Function workspace)。所有中间变量都存放在函数工作空间中。当执行完文件最后一条指令后,或遇到return,就结束该函数文件的运行,同时该临时函数空间及其所有的中间变量立即被清除。
函数空间随具体M函数文件被调用而产生,随调用结束而删除,函数空间是相对的。
基本空间是独立的、临时的。在MATLAB整个运行期间,可以产生任意多个临时函数空间。
假如在函数文件中,发生对某脚本文件的调用,那么,该脚本文件运行产生的所有变量都存放于那函数空间之中,而不是存放在基本空间。
2)M函数文件的基本结构
函数声明行(Function Declaration Line)
它位于函数文件的首行,以MATLAB关键字function开头,函数名及函数的输入/输出量名都在这一行被定义。
H1行
紧随函数声明行之后以%开头的第一注释行。按MATLAB自身文件的规则,H1行包含函数文件名,运用关键词简要描述该函数功能。
Hl行提供lookfor关键词查询和help在线使用帮助。顺便指出,MATLAB自带的函数文件在此行中都把函数文件名用“大写英文字母”表达。但实际上,此文件的“文件保存名”及运行时的“文件调用名”都必须是“相应的小写英文字母”。
在线帮助文本(Help Text )区
H1行及其之后连续的以%开头的所有注释行构成整个在线帮助文本。它通常包括函数输入输出量的含义及调用格式说明。
H1行尽量使用英文表达,以便借助lookfor进行“关键词”搜索。但从MATLAB 7.x版起,lookfor已经支持中文搜索,所以,H1行现也可采用中文描述。
编写和修改记录
其几何位置与在线帮助文本相隔一个“空行(不用%符开头)”。
该区域文本内容也都以%开头;标志编写及修改该M文件的作者和日期;版本记录。它用做软件档案管理。
函数体(Function Body)
为清晰起见,与前面的注释可以用“空”行相隔,这部分内容由实现该M函数文件功能的MATLAB指令组成。它接受输入量,进行程序流控制,创建输出量。其中为阅读、理解方便,也配置适当的空行和注释。
若仅从运算角度看,唯“函数声明行”和“函数体”两部分是构成M函数文件所必不可少的。