Folders Structure in OOP in matlab

Hi,
I would like to ask you if it is possible to have a structure in matlab like the one below
mainpath/@fld1
mainpath/@fld1/fld1.m
mainpath/@fld1/@subfld11
mainpath/@fld1/@subfld11/subfld11.m
mainpath/@fld1/@subfld12/
mainpath/@fld1/@subfld12/subfld12.m
mainpath/@fld1/@subfld13/
mainpath/@fld1/@subfld13/subfld13.m
...
What I would like is to organize my code in such a way so that I could understand that subfld11 is part of fld1 (not subclass) and that fld1 (class) can use subfld11 methods/properties etc.
Thanks in advance

2 comentarios

Walter Roberson
Walter Roberson el 10 de Oct. de 2011
Hmmmm, maybe, but the '@' folder structure was the old style of OOP; you have more control with the newer style (which has been around since roughly 2009a I think it was.)
Simeon
Simeon el 11 de Oct. de 2011
What do you mean is the old way?What's the newer style?

Iniciar sesión para comentar.

 Respuesta aceptada

Simeon
Simeon el 11 de Oct. de 2011
Thanks Daniel,
I thinks that the package is the most appropriate one. However the syntax of a class is much more convenient. I have to write the whole path in order to enter a subfolder.
mainpath/fld1
mainpath/fld1/fld1.m
mainpath/fld1/@subfld11
mainpath/fld1/@subfld11/subfld11.m
mainpath/fld1/subfld12/
mainpath/fld1/subfld12/subfld12.m
mainpath/fld1/subfld12/@subfld121
mainpath/fld1/subfld12/@subfld121/subfld121.m
mainpath/fld1/subfld12/@subfld122
mainpath/fld1/subfld12/@subfld122/subfld121.m
mainpath/fld1/@subfld13/
mainpath/fld1/@subfld13/subfld13.m
...
So in my example I have to write for instance
a = fld1.fld1();
b = fld1.subfld12.subfld121();
What if I want to call a function in subfld121 from subfld12? Should I write again the whole path?
c = fld1.subfld12.subfld121();
or
c = subfld121();
Thanks in advance

1 comentario

Daniel Shub
Daniel Shub el 11 de Oct. de 2011
With packages you can import the fuctions from the package. If you import many packages you need to worry about name conflicts.

Iniciar sesión para comentar.

Más respuestas (1)

Daniel Shub
Daniel Shub el 10 de Oct. de 2011

0 votos

You cannot do that. From the documentation ( http://www.mathworks.co.uk/help/techdoc/matlab_oop/brfynrp-1.html):
@-folders — Folder name begins with "@" and is not on the MATLAB path, but its parent folder is on the path.
So your second level of @ folders would not have parents who are on the path.
You might want to look into a package:

Preguntada:

el 10 de Oct. de 2011

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by