matlab脚本文件如何调用其它的文件夹,是否可以在MATLAB中为每个文件定义多个函数,并从该文件外部访问它们?...

6d58ba869ac1bbc8ca2ab34fec3a6c63.png

潇湘沐

调用该m文件时,将调用m文件中的第一个函数(即主函数)。它不是必需的,主要的功能具有相同的名称为M文件,但为了清楚起见,它应该。当函数和文件名不同时,必须使用文件名来调用main函数。m文件中的所有后续函数(称为本地函数(或旧术语中的“子函数”))只能由该m文件中的main函数和其他本地函数调用。其他m文件中的函数无法调用它们。从R2016b开始,您也可以向脚本添加本地函数,尽管作用域行为仍然相同(即它们只能在脚本中调用)。此外,您还可以在其他函数中声明函数。这些被称为嵌套函数,这些函数只能在它们嵌套的函数中调用。他们也可以访问嵌套它们的函数中的变量,这使得它们非常有用,尽管使用起来有些棘手。更多值得思考的东西......围绕上面概述的正常函数作用域行为有一些方法,例如将函数句柄作为输出参数传递,如SCFrench和Jonas的答案中所述(从R2013b开始,由localfunctions函数促进)。但是,我不建议习惯于采用这种技巧,因为组织你的功能和文件可能有更好的选择。例如,假设你有一个主要功能A在m文件A.m,与当地职能一起D,E和F。现在让我们假设你有两个其他相关功能B,并C在M文件B.m和C.m分别,你也希望能够呼吁D,E和F。以下是您的一些选择:把D,E和F每个放在他们自己独立的m文件中,允许任何其他函数调用它们。缺点是,这些功能的范围很广,并不仅仅限于A,B和C,但上涨空间,这是非常简单的。创建一个defineMyFunctionsm文件(就像在Jonas的例子中一样)D,使用E,和F作为本地函数和一个简单地返回函数句柄的main函数。这允许您保留D,E并且F在同一个文件中,但它不会对这些函数的范围做任何事情,因为任何defineMyFunctions可以调用的函数都可以调用它们。然后,您还必须担心将函数句柄作为参数传递,以确保将它们放在需要它们的位置。复制D,E并F进入B.m和C.m本地功能。这限制了它们的使用范围,只是A,B和C,但是更新和维护代码是一场噩梦,因为你在不同的地方有三个相同代码的副本。使用私人功能!如果你有A,B以及C在同一目录下,你可以创建一个名为的子目录private和地点D,E以及F在那里,每一个都是独立的m文件。这限制了它们的范围,使他们只能通过功能,在目录正上方叫(即A,B和C),并在同一个地方让他们在一起(但仍不同的m文件):myDirectory/

    A.m

    B.m

    C.m

    private/

        D.m

        E.m

        F.m所有这些都超出了你的问题的范围,并且可能比你需要的更详细,但我认为可能很好地触及组织所有m文件的更普遍的关注。;)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值