什么是局部函数呢?局部函数就是在某个局部范围内起作用的函数,超出作用范围,将不能被使用。通过添加局部函数,可以避免创建和管理单独的函数文件,可使代码编写一气呵成。局部函数仅在定义了这些函数的文件中对脚本代码和文件中的其他局部函数可见。它们对其他文件中的函数不可见,并且不能通过命令行来调用。它们等效于其他编程语言的子例程,有时被称为子函数。表1给出了脚本中不含函数和含函数的区别。
表1 脚本中添加函数与否的区别
从表中可以看出,脚本中不含函数时,函数以单独的m文件来存放,而脚本含函数时,只需要一个m文件即可。
下面再来说说函数的调用优先级,脚本中的局部函数>m文件工作路径中的独立函数>搜索路径中的函数,由此可以看出来,如果脚本的有函数名与其所在路径中函数同名时,将直接调用脚本中函数而不使用其工作路径中的同名函数。
下面给出一个小小的示例:
% MATLAB 2016b及更高版本中,函数可以直接包含在脚本或实时脚本中
x = 1:10;
n = length(x);
sd = stdFun(x);
% 以下是脚本中添加的函数
function re = stdFun(x)
% MYMEAN Example of a local function.
re = sqrt(sum((x-mean(x)).^2)/(length(x)-1));
end
从上面的简述中也可清晰地知道,添加在脚本中的函数只在脚本内部起作用,如果所写的函数需要被多个文件调用时,建议还是写成独立的函数文件。