font - title position matlab
carpeta @folder y+ (1)
La +folder
es una carpeta de paquete MATLAB. Si coloca Tata.m
en una ubicación como +folder/Tata.m
, +folder/Tata.m
lo conocerá como la folder.Tata
la folder.Tata
. Si lo coloca en una carpeta como someOtherFolder/Tata.m
, o someOtherFolder/@Tata/Tata.m
, someOtherFolder/@Tata/Tata.m
lo conocerá como Tata
.
Puede ser útil colocar un archivo classdef
en un directorio de clase como @Tata
para permitirle poner la definición de algunos (o todos) los métodos en archivos separados.
El doc tiene más detalles.
EDITAR: para intentar aclarar los @
directorios: históricamente, una clase Tata
con métodos methodOne
y methodTwo
requeriría los siguientes archivos:
somePlaceOnThePath/@Tata/Tata.m
somePlaceOnThePath/@Tata/methodOne.m
somePlaceOnThePath/@Tata/methodTwo.m
En el "nuevo" sistema de objetos, aún puede usar el diseño anterior sin modificaciones. En el otro extremo, puede colocar toda la implementación de Tata
en un solo bloque de classdef
en:
somePlaceOnThePath/Tata.m
Si tiene algunos métodos grandes, o si desea dividir la implementación de la clase Tata
en varios archivos para simplificar el desarrollo paralelo, puede usar un classdef como este:
%# somePlaceOnThePath/@Tata/Tata.m:
classdef Tata
methods
result = methodTwo(obj, arg)
function methodOne(obj)
disp(''hello from methodOne'');
end
end
end
Y también
%# somePlaceOnThePath/@Tata/methodTwo.m:
function result = methodTwo(obj, arg)
% do stuff with obj and arg
end
Estrictamente hablando, la declaración avanzada de methodTwo
en classdef
es opcional porque está usando los especificadores de acceso predeterminados. Si desea que el método methodTwo
sea un método privado, puede colocarlo en un bloque de methods (Access = private)
.
¿Cuál es el significado de los siguientes nombres de carpeta en MATLAB?
@folder
-
+folder
Tata.m
una clase Tata.m
que usa la sintaxis classdef
. ¿Debo ponerlo en una @folder
o a +folder
?
He @folder
la documentación pero no está claro en qué casos se debe usar @folder
y en qué casos se debe usar la +folder
.