Matlab中的访问功能

时间:2014-07-25 08:13:02

标签: matlab function

我将能够使用我可以看到代码的函数,这些函数在内置的matlab函数中使用但我无法直接调用。

其中一项功能是checkdata。我可以看到这个函数的代码。它用于内置的matlab函数,如gmdistribution.fit,但我无法直接调用它

X = zeros(5,5);
checkdata(X)

我如何在自己的功能中调用这些功能?

2 个答案:

答案 0 :(得分:3)

您无法调用函数checkdata,因为它是一个私有函数。要使函数对文件保密,您必须将函数文件存储在名为private的文件夹中。例如,考虑以下文件夹结构:

-Folder A
   - m1.m
   - m2.m
   Folder private
      - privatefunction1.m
      - privatefunction2.m
Folder B
   - m3.m

m1.m和m2.m可以调用privatefunction1.m和privatefunction2.m。 m3.m无法调用这两个私有函数中的任何一个。有关详细信息,请转到Matlab help about private functions

但是,如果您想使用checkdata,可以找到checkdata.m并将其复制到其他文件夹。

答案 1 :(得分:2)

您可以在MATLABFOLDER\toolbox\stats\stats\@gmdistribution\private中找到具有此功能的m文件。这是matlabs将函数设为私有的方式(see here)。 Matlab不允许您将诸如此类的私人文件夹添加到您的路径中。 简单的解决方法是在您的路径中放置您自己的具有类似功能的m文件,这是不难做到的,因为您可以查看代码及其功能。这样做时,我建议避免命名。 matlab处理那些like this