可能重复:
Is it possible to define more than one function per file in MATLAB?有没有办法从文件外部调用MATLAB的“子功能”?
为了定义一个MATLAB(不是匿名的)功能,您需要创建具有相同的名称作为函数的文件;例如,一个函数调用MYFUNC可以在文件myfunc.m被定义为每:
function rtn = myfunc(arg)
% do some stuff
end
假设在同一个文件myfunc.m,我也有一个子功能,如
function rtn = myfunc(arg)
% do some stuff
end
function rtn = mysubfunc(arg)
% do some other stuff
end
据我所知,有没有办法从执行subfunc.m文件以外的任何地方发生访问mysubfunc。在MATLAB(R2010b)中,我一直都很担心这种小小的特质。我错了 - 是否有任何方式来呼叫mysubfunc从外部myfunc.m?
更新:新问题:有没有什么好方法做到这一点?或者我应该真的把它吸了起来,并继续制作更多文件?
不,你必须把它吸起来。我使用半命名空间方法来减少混乱,并鼓励我重用自己的代码(例如,在'heatflux'项目中,我将使用hf_开始所有函数名称)。 – Alex 2011-05-12 07:14:21
这里你的目标是什么?你只是想减少在一个单独的文件中的每个功能的混乱? – 2011-05-12 18:28:40
如果您需要访问myfunc之外的子函数,那么几乎按照定义,它不应该是子函数。子函数应该保留用于仅在封闭函数的上下文中相关的通用功能。 – Marc 2011-05-13 19:31:27