专栏首页matlab爱好者你了解matlab局部函数吗?

你了解matlab局部函数吗?

函数,是编程中不可或缺的利剑。使用函数具有降低代码冗余、减少书写工作量、增强代码可读性和便于第三方管理等优势。在matlab编程中,函数更是扮演着重要角色,平常所使用的各种命令都是函数。当然,matlab中函数有很多种分类,今天不去细说,我们只谈局部函数(Local Function)。 不知小伙伴现在使用的是哪个版本的matlab,matlab虽随着版本更新所占用存储空间越来越大,但版本的更新带来的是bug修复、函数的优化、功能的升级或增加,其实大家在安装matlab时不用选择自己平时用不到的工具箱占用空间还是没有那么大的。在matlab 2016b版及更高版本中,引入可在脚本或实时脚本中直接添加局部函数的功能,不知道小伙伴有没有使用过。

什么是局部函数呢?局部函数就是在某个局部范围内起作用的函数,超出作用范围,将不能被使用。通过添加局部函数,可以避免创建和管理单独的函数文件,可使代码编写一气呵成。局部函数仅在定义了这些函数的文件中对脚本代码和文件中的其他局部函数可见。它们对其他文件中的函数不可见,并且不能通过命令行来调用。它们等效于其他编程语言的子例程,有时被称为子函数。表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

从上面的简述中也可清晰地知道,添加在脚本中的函数只在脚本内部起作用,如果所写的函数需要被多个文件调用时,建议还是写成独立的函数文件。

本文分享自微信公众号 - matlab爱好者(matlabaihaozhe),作者:matlab爱好者

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 这是你了解的 print()函数吗

    print() 应该是初学者最先接触到的第一个 Python 函数,因为几乎所有的启蒙课程都是从 print(‘Hello world’) 开始的。事实上, p...

    IT茂茂
  • 这6个命令助你玩转matlab自定义函数

    函数对于matlab的重要性这里就不在赘述了(你了解matlab局部函数吗?)。matlab自带的函数虽包罗万象、但并不可能揽括一切,在实际编程过程中往往还需要...

    matlab爱好者
  • 量化计算工具包parsec共享

    过冷水最近一段时间接触了一个非常牛X的程序包——parsec,花了九牛二虎之力才弄懂它,它能干什么呢?

    matlab爱好者
  • [翻译] Python 在信号处理中的优势之二

    还有,诸如SPTool(用于一般信号可视化和过滤)或FDATool(用于数字滤波器设计)的GUI工具用于高质量的专业级信号处理和控制系统设计。

    DSPSTACK.COM
  • 如何让matlab心甘情愿地做你的文件搬运工

    小编:由于后台服务器故障,要到10月32号才能恢复正常,大家耐心等等!咱们先来看matlab有哪些与文件操作相关的函数表吧!

    matlab爱好者
  • 你了解你的数据吗

    0x00 前言 你了解你的数据吗? 前几天突然来了点灵感,想梳理一下自己对数据的理解,因此便有了这篇博客或者说这系列博客来聊聊数据。 数据从业者有很多,比如说数...

    企鹅号小编
  • 如何用matlab获取高精度互联网时间日期?

    这里可以明确告诉大家一点,matlab版mathpix公式识别工具到时候不会以源代码而是以exe安装包的方式分享给大家。相应源代码则会上传至原创代码共享Q群,有...

    matlab爱好者
  • 用 Mathematica 弹奏卡农(Canon)

    WolframChina
  • 哈工大、哈工程被列“实体清单”又有后文,这次是被禁用 MATLAB!

    由于 5月22日以高校身份被美国商务部工业和安全局(BIS)被列入“实体清单”,哈工大、哈工程的师生如今已被禁用 MATLAB。

    AI科技评论

扫码关注云+社区

领取腾讯云代金券