0

我有一个庞大的脚本,其中包含许多彼此独立运行的代码部分。对于其中一些代码段,有很多重复的代码,所以我想定义一个函数,我可以从给定的代码段多次调用。但是,我要么收到错误“在此上下文中不允许函数定义。”,或者,一旦代码执行到达函数调用,它就会说函数未定义。

因此,Matlab (2016b) 似乎不接受在代码部分中定义的函数,或者我正在做其他错误的事情。

我尝试了什么:

  • 将整个脚本定义为一个函数,其名称与包含的 .m 文件的名称完全相同,并且在最后一行具有相应的“结束”

  • 在与其相关的代码部分的末尾定义包含我的重复代码的函数

  • .. 或文件末尾(在最顶层函数自己的“结束”之前)

  • .. 或在文件末尾(在最顶层函数自己的“结束”之后)

我的代码组织可能会受到批评,例如我可能会在我的文件中使用多个函数,而不是脚本样式的代码部分。但是,我想知道是否有一种方法可以从内部代码段调用函数。

4

1 回答 1

1

您需要阅读以下文档:

值得注意的是,第二个包含相关信息:

从 R2016b 开始,存储函数的另一个选项是将它们包含在脚本文件的末尾。

您说您使用的是 R2016b,因此您可以在脚本中定义函数,但它们必须位于文件末尾。该文档包含以下包含函数的有效脚本示例:

x = 3;
y = 2;
z = perm(x,y)

function p = perm(n,r)
    p = fact(n)*fact(n-r);
end

function f = fact(n)
    f = prod(1:n);
end
于 2018-03-02T15:52:18.967 回答