matlab - @文件夹和+文件夹

标签 matlab

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

  • @folder
  • +文件夹

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

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

最佳答案

+folder 部分是一个 MATLAB 包文件夹。如果将 Tata.m 放在类似 +folder/Tata.m 的位置,MATLAB 会将其识别为类 folder.Tata .如果将其放在 someOtherFolder/Tata.msomeOtherFolder/@Tata​​/Tata.m 等文件夹中,MATLAB 会将其识别为 Tata.

classdef 文件放在类目录中很有用 @Tata​​ 允许您将一些(或所有)方法的定义放在单独的文件中.

doc有更多详细信息。

编辑:试图阐明 @ 目录:历史上,类 Tata 具有方法 methodOnemethodTwo 需要以下文件:

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

在"new"对象系统中,您仍然可以不加修改地使用上面的布局。在另一个极端,您可以将 Tata 的整个实现放在一个 classdef block 中:

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

严格来说,classdefmethodTwo 的预先声明是可选的,因为它使用了默认的访问说明符。如果你想让 methodTwo 成为私有(private)方法,你可以将它放在 methods (Access = private) block 中。

关于matlab - @文件夹和+文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9781866/

相关文章:

Matlab 创建矢量化序列

matlab - 如何让 Matlab 编辑器默认打开一个新脚本作为选项卡,而不是新窗口?

matlab - 在 Matlab 中比较两个信号的最佳方法

python - fir2 从 matlab 到 python

arrays - 根据逻辑替换数组中的特定值

matlab - arrayfun(..) 调用, "Not enough input arguments."

matlab - G和GHAT需要是相同的分类树

matlab - 计算矩阵中的行数 - Matlab

matlab - 如何在 Matlab 中生成随机字符串?

Matlab:找到下一个较小的 float