我有一个有很多方法的课。我知道我可以在@Class文件夹中讲述单独的函数。由于某些函数是相关的,我想知道是否可以在单个方法文件中存储多个函数。 原因是我希望事情保持清晰和有条理。
答案 0 :(得分:2)
否:您可以将课程存储在单个文件中,也可以使用@
文件夹。如果使用@
文件夹,则可以将方法存储在主类文件中,也可以存储在每个方法的单个文件中。但是,您可以在主类文件中使用多个方法。
答案 1 :(得分:1)
请注意,@Class
文件夹中的常规函数和类方法之间没有区别,除非MATLAB仅在其中一个输入参数调度时调度@Class
文件夹中的函数类。
MATLAB文档的相关部分:
答案 2 :(得分:1)
您可以做的一件事是创建一个函数,通过基于其中一个输入创建处理程序来调用文件中的其他函数之一。然而,这更像是在文件中构建一个巨大的开关盒来处理不同的功能,并可能导致许多错误潜力:
{0,5}
因此,通过将所需函数的名称作为字符串传递,您可以通过文件的主函数将其作为私有函数进行处理。
function X=multifun(varargin)
if (nargin==0)
X='first of many error potentials';
return
end
functionhandle=str2func(varargin{1});
X=functionhandle(varargin(2:end));
end
function x=a(varargin)
x=sum([varargin{1}{:}]);
end
function x=b(varargin)
x=mean([varargin{1}{:}]);
end
然而,你再次看到输入参数(multifun('a',2,3)
ans =
5
multifun('b',2,3)
ans =
2.5000
)会发生什么,这只是一种可怕的做法。所以
理论可能 - 是的。
值得推荐 - 不。