1.3 MATLAB中的函数类型
MATLAB中的函数可以划分为匿名函数、M文件主函数、嵌套函数、子函数、私有函数和重载函数,下面分别进行讲述。
1.3.1 匿名函数
匿名函数是很简单的函数,它通常只是由一句很简单的声明语句组成。使用匿名函数的优点是不需要维护一个M文件,只是需要一句非常简单的语句,就可以在命令窗口或者M文件中调用函数。
创建匿名函数的标准格式如下:
【例1-3】 匿名函数的示例。
在命令窗口输入如下命令:
运行结果如下:
1.3.2 M文件主函数
每一个M文件第一行定义的函数就是M文件主函数,一个M文件只能包含一个主函数。M文件主函数的说法是针对其内部的子函数和嵌套函数而言的,一个M文件中除了主函数外,还可以编写多个嵌套函数或子函数。
1.3.3 子函数
在MATLAB中,一个M文件中除了一个主函数外,该文件中的其他函数称为子函数,保存时所用的函数名应该与主函数定义名相同,外部函数只能对主函数进行调用。
所有的子函数都有自己独立的声明、帮助和注释等结构,只需要在位置上注意处于主函数之后即可,而各个子函数则没有前后顺序,可以任意放置。
M文件内部发生函数调用时,MATLAB首先检查该文件中是否存在相应名称的子函数,然后检查这一M文件所在目录的子目录下是否存在同名的私有函数,然后按照MATLAB路径,检查是否存在同名的M文件或内部函数。
1.3.4 嵌套函数
在一个函数内部,可以定义一个或多个函数,这种定义在其他函数内部的函数就称为嵌套函数。一个函数内部可以嵌套多个函数,嵌套函数内部又可以继续嵌套其他函数。
嵌套函数的书写语法格式如下:
1.3.5 私有函数
私有函数是具有限制性访问权限的函数,是位于私有目录private目录下的函数文件,这些私有函数的构造与普通M函数完全相同,只不过私有函数的调用只能被private直接父目录下的M文件所调用,任何指令通过“名称”对函数进行调用时,私有函数的优先级仅次于MATLAB的内置函数和子函数。
通过help、lookfor等帮助命令都不能显示一个私有函数的任何信息,必须声明其私有的特点。
1.3.6 重载函数
重载是计算机编程中非常重要的概念,它经常是用在处理功能类似,但是参数类型或个数不同的函数编写中。例如实现两个相同的计算功能,输入变量数量相同,不同的是其中一个输入变量的类型为双精度浮点类型,另一个输入类型为整型,这时候用户就可以编写两个同名函数,一个用来处理双精度浮点类型的输入函数,另一个用来处理整型的输入参数。
MATLAB的内置函数中有许多重载函数,放置在不同的文件路径下,文件夹名称以@开头,然后跟一个代表MATLAB数据类型的字符。