【问题标题】:@folder and +folder@文件夹和+文件夹
【发布时间】:2012-03-20 05:42:35
【问题描述】:

MATLAB中以下文件夹名称是什么意思?

  • @folder
  • +folder

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

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

【问题讨论】:

    标签: matlab


    【解决方案1】:

    +folder 是一个 MATLAB 包文件夹。如果您将Tata.m 放在类似+folder/Tata.m 的位置,则MATLAB 将其称为folder.Tata 类。如果将它放在someOtherFolder/Tata.msomeOtherFolder/@Tata/Tata.m 之类的文件夹中,MATLAB 将知道它为Tata

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

    doc 有更多详细信息。

    编辑:要尝试澄清 @ 目录:从历史上看,具有方法 methodOnemethodTwo 的类 Tata 需要以下文件:

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

    在“新”对象系统中,您仍然可以使用上面的布局而不需要修改。在另一个极端,您可以将 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) 块中。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多