Matlab中的函数约定
1. 脚本与函数与文件
前面讲的所有内容,都可以在Matlab的命令行中间完成,但是我们的某一段计算,可能会希望能够多次运行,这个时候Matlab提供的基于文件约定的脚本和函数基本单元就派上了用场。
约定:Matlab中,一个文件就自动形成一个可以运行的命令或者可以调用的函数,调用方式就是文件名(去掉后缀)。
当然,脚本和函数区分的约定就在于文件头。一个文件的第一个有效行是一个function
定义,那么这个文件就是一个函数,否则就是一个脚本。
在Matlab命令行中输入edit filename
,就可以编辑一个文件,如果这个文件在搜索目标中不存在,那么Matlab会提示创建一个新文件。
1.1 搜索目录
上面提到的第一个概念就是搜索目录,Matlab在搜索目录中查找文件。如果使用过任何shell,那么这个概念就很熟悉了。
Matlab的搜索目录是一个cell数组,可以通过path
函数查看搜索目录,通过addpath
和rmpath
函数添加和删除搜索目录。
跟搜索路径相关的函数addpath
, matlabroot
, restoredefaultpath
, pathtool
, rehash
, rmpath
。利用Matalb的帮助系统查看这些函数的用法。
1.2 脚本
脚本的后缀是.m
,脚本文件的第一个有效行不是function
定义。
在Matlab命令行中输入文件名(去掉.m后缀),就可以运行这个脚本文件。Matlab解释器会从前到后执行文件中的所有语句。
1.3 函数
函数的后缀是.m
,函数文件的第一个有效行是function
定义。函数定义的语法是:
function [out1, out2, ...] = myfun(in1, in2, ...)
其中,myfun
是函数名,out1, out2, ...
是输出参数,in1, in2, ...
是输入参数。
约定:函数文件的文件名和函数名一致,最好这么做。
函数文件的文件名是函数名,如果函数名和文件名不一致,那么Matlab解释器会根据文件名来调用函数,并且在编辑函数代码时,会提醒修改函数名称。
2. 函数
除了上面给出的函数方式,还有另外几种函数定义方式。
2.1 匿名函数
匿名函数是一种简单的函数定义方式,语法是: