脚本
脚本是一串按照用户意愿排列而成的MATLAB指令集合。脚本文件运行后,其运算过程中所产生的所有变量都自动保留在MATLAB工作区中,除非用户关闭MATLAB运行界面,或是使用clear指令对工作并区中的变量加以清理,否则这些变量将一直保存在基本的工作区中。
函数
如果M文件的第一个执行语句是function开始,该文件就是函数文件,每一个函数文件都定义一个函数。
一般格式
- 函数定义行:由关键字function引导,指明这是一个函数文件,并且定义函数名、输入参数和输出参数,函数名与文件名相同。
- H1行:以‘%’开头,包含大写的函数文件名和运用关键词简要描述的函数功能
- 帮助文本:H1行及以后的连续’%'开头的注释行,对函数输入输出及参数的说明
- 编写和修改记录:与帮助文档一个空行相隔,记录编写及修改M文件的所有作者及版本号
- 函数体:与编写和修改记录以一个空行相隔,实现所有函数文件的MATLAB指令
相关示例请参考:04spirallength.m
此外相关参数如下
- nargin:调用函数输入参数的个数
- nargout:调用函数返回参数的个数
- inputname(x):返回输入表上数值x所在位置的输入参数变量的名字
匿名函数
匿名函数没有函数名,也不是函数M文件,只包含一个表达式和输入输出参数。用户可以在命令行窗口中输入代码创建匿名函数。匿名函数的创建方法:
f=@(input1,input2,...) expression
子函数
在MATLAB中,多个函数的代码可以同时写到一个M函数文件中。其中,出现的第一个函数称为主函数,该文件中的其他函数称为子函数。保存时所有的函数文件名应当与主函数定义名相同,外部程序只能对主函数进行调用。
子函数的书写规范有如下几条:
- 每个子函数的第一行时其函数声明行
- 在M函数文件中,主函数的位置不能改变,但是多个子函数的排列顺序可以任意改变
- 子函数只能被同一M文件中的函数或其他子函数调用
- 在M函数文件中,任何指令通过名称对函数进行调用时,子函数的优先级仅次于内置函数
特殊函数
feval函数
[y1,y2,...] = feval ('FN',arg1,arg2,...)