MATLAB中以下文件夹名称的含义是什么?
@folder+folder我创建了一个Tata.m使用classdef语法的类.我应该把它放在一个@folder或一个+folder?
我查看了文档,但是在哪些情况下@folder应该使用以及在哪些情况下+folder应该使用它并不是很清楚.
Edr*_*ric 37
这+folder件作品是一个MATLAB包文件夹.如果你放置Tata.m在类似的位置+folder/Tata.m,它将被MATLAB称为类folder.Tata.如果将它放在类似的文件夹中someOtherFolder/Tata.m,或者someOtherFolder/@Tata/Tata.m它将被MATLAB称为Tata.
将classdef文件放在类目录中会很有用,这样可以将@Tata某些(或所有)方法的定义放在单独的文件中.
该文档有更多细节.
编辑:要尝试澄清@目录:从历史上看,一类Tata与方法methodOne和methodTwo需要以下文件:
somePlaceOnThePath/@Tata/Tata.m
somePlaceOnThePath/@Tata/methodOne.m
somePlaceOnThePath/@Tata/methodTwo.m
Run Code Online (Sandbox Code Playgroud)
在"新"对象系统中,您仍然可以使用上面的布局而无需修改.在另一个极端,您可以将整个实现Tata放在一个classdef块中:
somePlaceOnThePath/Tata.m
Run Code Online (Sandbox Code Playgroud)
如果你有一些大的方法,或者想要将类的实现拆分Tata成几个文件以使并行开发更简单,你可以使用这样的classdef:
%# somePlaceOnThePath/@Tata/Tata.m:
classdef Tata
methods
result = methodTwo(obj, arg)
function methodOne(obj)
disp('hello from methodOne');
end
end
end
Run Code Online (Sandbox Code Playgroud)
并且
%# somePlaceOnThePath/@Tata/methodTwo.m:
function result = methodTwo(obj, arg)
% do stuff with obj and arg
end
Run Code Online (Sandbox Code Playgroud)
严格地说,对提前申报methodTwo的classdef,因为它使用的默认访问修饰符是可选的.如果您想methodTwo成为私有方法,可以将其放在一个methods (Access = private)块中.
| 归档时间: |
|
| 查看次数: |
13821 次 |
| 最近记录: |