@folder和+文件夹

时间:2012-03-20 05:42:36

标签: matlab

MATLAB中以下文件夹名称的含义是什么?

  • @folder
  • +folder

我创建了一个使用Tata.m语法的类classdef。 我应该将它放在@folder还是+folder

我看过文档,但不是很清楚 在哪些情况下应使用@folder,在哪些情况下应使用+folder

1 个答案:

答案 0 :(得分:37)

+folder篇是MATLAB包文件夹。如果您将Tata.m放在+folder/Tata.m之类的位置,则MATLAB将其称为班级folder.Tata。如果您将其放在someOtherFolder/Tata.msomeOtherFolder/@Tata/Tata.m等文件夹中,则MATLAB将其称为Tata

classdef文件放在类@Tata这样的类目录中会很有用,这样您就可以将一些(或所有)方法的定义放在单独的文件中。

doc有更多详情。

编辑:尝试澄清@目录:历史上,使用方法TatamethodOne的班级methodTwo需要以下文件:

somePlaceOnThePath/@Tata/Tata.m
somePlaceOnThePath/@Tata/methodOne.m
somePlaceOnThePath/@Tata/methodTwo.m

在" new"对象系统,您仍然可以使用上面的布局而无需修改。另一方面,您可以将Tata的整个实施放在一个classdef块中:

somePlaceOnThePath/Tata.m

如果您有一些大型方法,或者想要将类Tata的实现拆分为多个文件以使并行开发更简单,您可以使用这样的classdef:

%# somePlaceOnThePath/@Tata/Tata.m:
classdef Tata
    methods
         result = methodTwo(obj, arg)

         function methodOne(obj)
             disp('hello from methodOne');
         end
    end
end

%# somePlaceOnThePath/@Tata/methodTwo.m:
function result = methodTwo(obj, arg)
% do stuff with obj and arg
end

严格地说,methodTwoclassdef的提前声明是可选的,因为它使用默认访问说明符。如果您希望将methodTwo作为私有方法,则可以将其放在methods (Access = private)块中。