【发布时间】:2018-03-02 15:46:47
【问题描述】:
我有一个庞大的脚本,其中包含许多彼此独立运行的代码部分。对于其中一些代码段,有很多重复的代码,所以我想定义一个函数,我可以从给定的代码段多次调用。但是,我要么收到错误“在此上下文中不允许函数定义。”,或者,一旦代码执行到达函数调用,它就会说函数未定义。
因此,Matlab (2016b) 似乎不接受在代码部分中定义的函数,或者我正在做其他错误的事情。
我尝试了什么:
将整个脚本定义为一个函数,名称与包含的 .m 文件的名称完全相同,并在最后一行带有相应的“end”
在与其相关的代码部分的末尾定义包含我的重复代码的函数
.. 或在文件末尾(最顶层函数自己的“结束”之前)
- .. 或在文件末尾(在最顶层函数自己的“end”之后)
我的代码组织可能会受到批评,例如我可能会在我的文件中使用多个函数,而不是脚本样式的代码部分。但是,我想知道是否有一种方法可以从内部代码段调用函数。
【问题讨论】:
-
如果您希望能够独立运行单元格,最好的方法可能是在单独的文件中定义函数(文件名=函数名+“.m”)。函数文件需要位于工作目录或 MATLAB 路径中。是否有某些原因这对您不起作用?
-
你是对的。为了方便起见,我一直试图将所有代码保存在同一个文件中,但我准备接受这可能不可行:)
标签: matlab function nested code-separation