如何规范地编写一个MATLAB函数文件

本文介绍如何规范地编写一个函数文件。

通常,函数文件由函数声明行、H1行、在线帮助文本区、编写和修改记录、函数主体等几个部分组成。格式如下:

function 输出形参表 = 函数名(输入形参表)

在线帮助文本区,其中第一行为H1行

编写和修改记录

函数主体


函数声明行

  1. 由关键字function引导,指明这是一个函数文件,并定义函数名、输入参数和输出参数。
  2. 函数名应当与文件名一致(保存函数文件时会默认以函数名作为文件名予以保存),如果两者不一致,MATLAB将以文件名为准,以后调用时使用文件名调用该函数。
  3. 在脚本文件中编写函数时,需以end结尾;独立的函数文件不需以end结尾。
  4. MATLAB中的函数文件名必须以字母开头,可以是字母、下划线、数字的任意组合,但不可以超过31个字符。

H1行

  1. 紧随函数声明行之后的以“%”开头的第一注释行。
  2. H1行包括大写的函数名和函数功能简要描述,采用lookfor命令可在命令行窗口显示H1行的信息。
  3. 建议在编写H1注释行时,尽量采用英文表述,这是为了之后的使用过程中关键词检索的方便。

在线帮助文本区

  1. 包括H1行以及H1行之后的连续的以“%”开头的注释行。
  2. 通常包括函数输入变量和输出变量的含义以及调用说明。
  3. 采用help命令可在命令行窗口显示在线帮助文本区的信息。

编写和修改记录

  1. 与在线帮助文本区以一个空行相隔。
  2. 该行以“%”开头,记录了编写及修改函数文件的作者、日期、版本等内容,以方便后来的使用查询或修改。

函数主体

  1. 应与编写和修改记录以一个空行相隔。
  2. 这部分内容包括了所有实现该函数文件功能的MATLAB指令。

例:完整的函数文件示范。


 
 
  1. function spir_len = spirallength(d, n, lcolor)
  2. % SPIRALLENGTH plot a circle of radius as r in the provided color and calculate its area
  3. % 输入参数:
  4. % d: 螺旋的旋距
  5. % n: 螺旋的圈数
  6. % lcolor:画图线的颜色
  7. % 输出参数:
  8. % spir_len:螺旋的周长
  9. % 调用说明:
  10. % spirallength(d,n):以参数d,n画螺旋线,螺旋线默认为蓝色
  11. % spirallength(d,n,lcolor):以参数d,n,lcolor画螺旋线
  12. % spir_len = spirallength(d,n):计算螺旋线的周长,并以蓝色填充螺旋线
  13. % spir_len = spirallength(d,n,lcolor):计算螺旋线的周长,并以lcolor颜色填充螺旋线
  14. % 版本号V1 .0,编写于 199999号,修改于 1999910号,作者:亚索
  15. if nargin > 3
  16. error( '输入变量过多!');
  17. elseif nargin == 2
  18. lcolor = 'b'; % 默认情况下为蓝色
  19. end
  20. j = sqrt( -1);
  21. phi = 0 : pi/ 1000 : n* 2*pi;
  22. amp = 0 : d/ 2000 : n*d;
  23. spir = amp .* exp(j*phi);
  24. if nargout == 1
  25. spir_len = sum(abs(diff(spir)));
  26. fill(real(spir), imag(spir), lcolor);
  27. elseif nargout == 0
  28. plot(spir, lcolor);
  29. else
  30. error( '输出变量过多!');
  31. end
  32. axis( 'square');

在命令行窗口中输入:

spirallength(0.25,4)
 
 

输出结果如图:

在命令行窗口输入:

spir_len = spirallength(0.25,4)
 
 

输出的结果不仅包括上图,而且还在命令行窗口显示spir_len=12.6542。


函数参数指令集

  • nargin:表示一个变量,指定调用函数所带参数的个数
  • nargout:表示一个变量,指定调用函数所返回的参数的个数

本文完。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值