MATLAB中以下文件夹名称的含义是什么?
@folder
+folder
我创建了一个使用Tata.m
语法的类classdef
。
我应该将它放在@folder
还是+folder
?
我看过文档,但不是很清楚
在哪些情况下应使用@folder
,在哪些情况下应使用+folder
。
答案 0 :(得分:37)
+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
块中:
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
严格地说,methodTwo
中classdef
的提前声明是可选的,因为它使用默认访问说明符。如果您希望将methodTwo
作为私有方法,则可以将其放在methods (Access = private)
块中。