在matlab中,M文件分为脚本文件和函数文件。如果M文件的第一个可执行语句以function开头,那这个M文件就是函数文件。函数文件内定义的变量为局部变量,只在函数文件内部起作用,当函数文件执行完后,这些内部变量将被清除。
本文介绍如何规范地编写一个函数文件。
通常,函数文件由函数声明行、H1行、在线帮助文本区、编写和修改记录、函数主体等几个部分组成。格式如下:
function 输出形参表 = 函数名(输入形参表)
在线帮助文本区,其中第一行为H1行
编写和修改记录
函数主体
函数声明行
- 由关键字function引导,指明这是一个函数文件,并定义函数名、输入参数和输出参数。
- 函数名应当与文件名一致(保存函数文件时会默认以函数名作为文件名予以保存),如果两者不一致,MATLAB将以文件名为准,以后调用时使用文件名调用该函数。
- 在脚本文件中编写函数时,需以end结尾;独立的函数文件不需以end结尾。
- MATLAB中的函数文件名必须以字母开头,可以是字母、下划线、数字的任意组合,但不可以超过31个字符。
H1行
- 紧随函数声明行之后的以“%”开头的第一注释行。
- H1行包括大写的函数名和函数功能简要描述,采用lookfor命令可在命令行窗口显示H1行的信息。
- 建议在编写H1注释行时,尽量采用英文表述,这是为了之后的使用过程中关键词检索的方便。
在线帮助文本区
- 包括H1行以及H1行之后的连续的以“%”开头的注释行。
- 通常包括函数输入变量和输出变量的含义以及调用说明。
- 采用help命令可在命令行窗口显示在线帮助文本区的信息。
编写和修改记录
- 与在线帮助文本区以一个空行相隔。
- 该行以“%”开头,记录了编写及修改函数文件的作者、日期、版本等内容,以方便后来的使用查询或修改。
函数主体
- 应与编写和修改记录以一个空行相隔。
- 这部分内容包括了所有实现该函数文件功能的MATLAB指令。
例:完整的函数文件示范。
-
function spir_len = spirallength(d, n, lcolor)
-
% SPIRALLENGTH plot a circle of radius as r in the provided color and calculate its area
-
% 输入参数:
-
% d: 螺旋的旋距
-
% n: 螺旋的圈数
-
% lcolor:画图线的颜色
-
% 输出参数:
-
% spir_len:螺旋的周长
-
% 调用说明:
-
% spirallength(d,n):以参数d,n画螺旋线,螺旋线默认为蓝色
-
% spirallength(d,n,lcolor):以参数d,n,lcolor画螺旋线
-
% spir_len = spirallength(d,n):计算螺旋线的周长,并以蓝色填充螺旋线
-
% spir_len = spirallength(d,n,lcolor):计算螺旋线的周长,并以lcolor颜色填充螺旋线
-
-
% 版本号V1.0,编写于1999年9月9号,修改于1999年9月10号,作者:亚索
-
-
if nargin > 3
-
error('输入变量过多!');
-
elseif nargin == 2
-
lcolor = 'b'; % 默认情况下为蓝色
-
end
-
-
j = sqrt(-1);
-
phi = 0 : pi/1000 : n*2*pi;
-
amp = 0 : d/2000 : n*d;
-
spir = amp .* exp(j*phi);
-
-
if nargout == 1
-
spir_len = sum(abs(diff(spir)));
-
fill(real(spir), imag(spir), lcolor);
-
elseif nargout == 0
-
plot(spir, lcolor);
-
else
-
error('输出变量过多!');
-
end
-
-
axis('square');
在命令行窗口中输入:
spirallength(0.25,4)
输出结果如图:
在命令行窗口输入:
spir_len = spirallength(0.25,4)
输出的结果不仅包括上图,而且还在命令行窗口显示spir_len=12.6542。
函数参数指令集
- nargin:表示一个变量,指定调用函数所带参数的个数
- nargout:表示一个变量,指定调用函数所返回的参数的个数