MATLAB 中下列文件夹名称的含义是什么?
@folder
+文件夹
我创建了一个类 Tata.m
,它使用 classdef
语法。
我应该把它放在 @folder
还是 +folder
中?
我看过文档,但不是很清楚
在哪些情况下应使用 @folder
,在哪些情况下应使用 +folder
。
最佳答案
+folder
部分是一个 MATLAB 包文件夹。如果将 Tata.m
放在类似 +folder/Tata.m
的位置,MATLAB 会将其识别为类 folder.Tata
.如果将其放在 someOtherFolder/Tata.m
或 someOtherFolder/@Tata/Tata.m
等文件夹中,MATLAB 会将其识别为 Tata
.
将 classdef
文件放在类目录中很有用 @Tata
允许您将一些(或所有)方法的定义放在单独的文件中.
doc有更多详细信息。
编辑:试图阐明 @
目录:历史上,类 Tata
具有方法 methodOne
和 methodTwo
需要以下文件:
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
严格来说,classdef
中methodTwo
的预先声明是可选的,因为它使用了默认的访问说明符。如果你想让 methodTwo
成为私有(private)方法,你可以将它放在 methods (Access = private)
block 中。
关于matlab - @文件夹和+文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9781866/