Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
在我攻读EE的本科学位时,MATLAB要求每个函数都必须在其自己的文件中定义,即使它是单行的也是如此。
我现在正在攻读研究生学位,所以我必须在MATLAB中编写一个项目。仍然需要更新版本的MATLAB吗? 如果可以在一个文件中放置多个功能,是否对此有任何限制?例如,可以从文件外部访问文件中的所有功能,还是仅从名称相同的功能访问文件? 注意:我正在使用MATLAB版本R2007b。 回答: m文件中的第一个函数(即main函数 )在调用该m文件时被调用。 不需要 main函数具有与m文件相同的名称,但为清楚起见,它应具有 。当函数和文件名不同时,必须使用文件名来调用主函数。 m文件中的所有后续函数(称为本地函数 (或旧术语中的“子函数”))只能由该m文件中的main函数和其他本地函数调用。其他m文件中的函数无法调用它们。从R2016b开始,您还可以向脚本中添加本地功能 ,尽管作用域范围仍然相同(即只能在脚本中调用它们)。 此外,您还可以在其他函数中声明函数。这些称为嵌套函数 ,并且只能从它们嵌套的函数内部调用它们。它们还可以访问嵌套它们的函数中的变量,这使它们非常有用,尽管使用起来有些棘手。 更多值得深思的... 围绕上面概述的常规函数作用域行为,有一些方法,例如将函数句柄作为输出参数传递,如SCFrench和Jonas的答案中所述(从R2013b开始, localfunctions函数localfunctions函数提供了localfunctions )。但是,我不建议您养成使用这种技巧的习惯,因为组织功能和文件可能有更好的选择。 例如,假设您在m文件Am具有一个主要函数A ,以及局部函数D , E和F现在,假设您在m文件Bm和Cm中分别具有其他两个相关函数B和C ,您还希望能够调用D , E和F这里有一些选项:
更多&回答... |
![]() |
![]() |