+folder
шт. Это папка с пакетом MATLAB. Если вы разместите Tata.m
в таком месте, как +folder/Tata.m
, он будет известен MATLAB как класс folder.Tata
. Если вы поместите его в папку, например someOtherFolder/Tata.m
, или someOtherFolder/@Tata/Tata.m
, она будет известна MATLAB как Tata
.
Может быть полезно разместить файл classdef
в каталоге классов, например @Tata
, чтобы вы могли поместить определение некоторых (или всех) методов в отдельные файлы.
doc имеет более подробную информацию.
EDIT: Для того, чтобы попытаться прояснить @
каталоги: исторически, класс Tata
с методами methodOne
и methodTwo
потребует следующие файлы:
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
Строго говоря, предварительное объявление methodTwo
в classdef
необязательно, поскольку оно использует спецификаторы доступа по умолчанию. Если вы хотите, чтобы methodTwo
был приватным методом, вы можете поместить его в блок methods (Access = private)
.
ОК, спасибо Эдрику, теперь я понимаю папку +, но не @folder – lola
Ссылка на документацию сломана, и я не могу понять, что она должна была быть. Я также все еще пытаюсь понять смысл и значение «папки пакета MATLAB». – patrickvacek
Хм, теперь я не уверен на 100%, возможно, это должно было быть http://www.mathworks.com/help/matlab/matlab_oop/scoping-classes-with-packages.html или http: // www .mathworks.com/помощь/Matlab/matlab_oop/организующие-классы-в-folders.html – Edric