--------------------- 
作者:桂哥317 
来源:CSDN 
原文:https://blog.csdn.net/qq_15971883/article/details/82884353 
版权声明:本文为博主原创文章,转载请附上博文链接!

matlab中,M文件分为脚本文件和函数文件。如果M文件的第一个可执行语句以function开头,那这个M文件就是函数文件。函数文件内定义的变量为局部变量,只在函数文件内部起作用,当函数文件执行完后,这些内部变量将被清除。

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

通常,函数文件由函数声明行、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指令。

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


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 > 3error('输入变量过多!');
elseif nargin == 2lcolor = 'b'; % 默认情况下为蓝色
endj = sqrt(-1);
phi = 0 : pi/1000 : n*2*pi;
amp = 0 : d/2000 : n*d;
spir = amp .* exp(j*phi); if nargout == 1spir_len = sum(abs(diff(spir))); fill(real(spir), imag(spir), lcolor);
elseif nargout == 0plot(spir, lcolor);
elseerror('输出变量过多!');
end

转载:如何规范地编写一个MATLAB函数文件相关推荐

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

    本文介绍如何规范地编写一个函数文件. 通常,函数文件由函数声明行.H1行.在线帮助文本区.编写和修改记录.函数主体等几个部分组成.格式如下: function 输出形参表 = 函数名(输入形参表) 在 ...

  2. 【Matlab】如何规范地编写一个MATLAB函数文件

    在matlab中,M文件分为脚本文件和函数文件.如果M文件的第一个可执行语句以function开头,那这个M文件就是函数文件.函数文件内定义的变量为局部变量,只在函数文件内部起作用,当函数文件执行完后 ...

  3. 【 MATLAB 】通过案例学会编写一个 matlab 函数(小猫掉进山洞问题)

    这是关于matlab学习的第一篇博文,我是不愿意承认自己不会MATLAB的,因为这东西大一的时候就学过,如果白驹过隙,都不好意思说自己研几了,科研的过程中MATLAB是必须要会的,于是得系统的看一下了 ...

  4. 3、编写一个prod()函数,可以接受一个list并利用reduce()求积

    3.编写一个prod()函数,可以接受一个list并利用reduce()求积 # -*- coding: utf-8 -*-from functools import reducedef prod(L ...

  5. 【转】Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现

    转自:Linux下c++调用自己编写的matlab函数:通过mcc动态链接库.so实现_Jaster_wisdom的专栏-CSDN博客 之前在这里和这里调用了matlab自带的一些函数,是通过matl ...

  6. 阿里云服务器上调用自己编写的matlab函数

    该博客为<Ubuntu 相关>系列博客的第五篇,该系列博客主要对Ubuntu安装各种软件或者库进行一个记录,方便重装系统后快速恢复工作. 这是进项目组以来接受的第一个任务的后续工作,以此记 ...

  7. 编写一个求和函数sum,用于计算 1+2+…+n ,在主函数调用该函数求和。

    编写一个求和函数sum,用于计算 1+2+-+n ,在主函数调用该函数求和. 示例 输入 输出 1️⃣ 5 15 2️⃣ 7 28 3️⃣ 3 6

  8. C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。

    例题:编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中. 在主函数中调用该函数计算出这n个整数之和. 代码如下: /*代码分析:录入函数需要两个参数:一个参数是需要用来存储数字的数组, ...

  9. 用泰勒公式编写一个sin函数--C语言

    通过麦格劳林展开式,来编写一个sin函数,C语言内置了三角函数,这个三角函数在   #include<math.h>  的头文件下要输入角度数,是有着需要先将角度转化为弧度在进行使用,我编 ...

最新文章

  1. ORA-00959: tablespace 'PSAPTEMP' does not exist
  2. strcpy,memcpy和memmove区别
  3. 如何安装树莓派摄像头
  4. android splash白屏_使用react-native-splash-screen解决应用启动白屏问题
  5. Oracle按照时间统计总结
  6. php 多只能上传20个文件解决办法,修改php.ini 的max_file_uploads
  7. java web 颜色灰色_网站动态变灰解决方案(java web项目网站)
  8. css 清除浮动float 嗒嘀嗒滴 ----20181120
  9. 对c语言字符数组描述错误的是,下述对C语言字符数组的描述中错误的是( )。
  10. 小米游戏本2019 I7-9750H安装黑苹果11.5 big Sur
  11. 计算机硬件维修书,计算机硬件维修手册
  12. 【游戏开发实战】Unity调用谷歌Google免费翻译API(https接口),年轻人不讲武德,用多个国家语言怎么讲
  13. QTcpSocket
  14. vc调试总是提示项目已过期
  15. (五)SGE 命令 (1)qsub
  16. 2021年度训练联盟热身训练赛第五场 F,G,H,I
  17. 电子邮件客户端软件--foxmail(2)
  18. android手机黑科技软件,4款安卓手机黑科技APP,功能非常牛逼,希望大家谨慎使用...
  19. chown与chmod的区别
  20. 哈工大+讯飞推出:高效预训练模型压缩方案GRAIN

热门文章

  1. 有序链表转换二叉搜索树
  2. .Net中委托的协变和逆变详解
  3. React Native组件的结构和生命周期
  4. Inno Setup 检测已安装的.NET Framework 版本
  5. PreparedStatement对象
  6. python经典数据类型
  7. R语言学堂开通付费咨询业务了~~
  8. 360天擎默认卸载密码_装机工具老毛桃携带木马病毒 卸载安全软件进行恶意推广...
  9. 如何避免ajax重复请求?
  10. 在web开发中,为什么前端比后端更得到转行程序员的青睐?