我有一个庞大的脚本,由许多代码部分组成,我彼此独立运行。对于其中一些代码部分,有很多重复代码,所以我想定义一个我可以从给定代码部分多次调用的函数。但是,我要么得到错误"在此上下文中不允许使用函数定义。",或者,一旦代码执行到达函数调用,它就表示函数未定义。
所以似乎Matlab(2016b)不接受在代码部分中定义的函数,或者我正在做其他错误的事情。
我尝试了什么:
将整个脚本定义为一个函数,其名称与包含.m文件的名称完全相同,并带有相应的' end'在最后一行
在与其相关的代码部分的末尾定义包含重复代码的函数
..或在文件末尾(在最顶层的功能之前'结束')
我的代码组织可能会受到批评,例如我可能会在我的文件中使用多个函数,而不是脚本样式的代码部分。但是,我想知道是否有一种方法可以从代码段内部调用函数。
答案 0 :(得分: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