What does @ on a dir of *.m files mean?
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
What does it mean when the first character on a directory containing related *.m files is @?
I am an ML Noob. I have acquired some ML code and I am attempting understand it. In it there are certain directories for which the first character of the name is @.
example: @DBserver - DBserver
- ls
- put
If I attempt to open DBserver, it opens. If I attempt to open ls or put, DBserver opens. What is going on here? I'll bet the @ means something.
I couldn't find anything on this in the documentation. Feel free to point me to it if I've missed.
Thanks in advance.
0 Kommentare
Antworten (2)
James Tursa
am 20 Jun. 2014
Bearbeitet: James Tursa
am 20 Jun. 2014
@dirname means that it is an old-style class definition, the class name being dirname. All of the functions (methods) that the class supports are listed as files in that directory. To use such a class, simply put the directory that @dirname is in on the MATLAB path (i.e., do NOT put the @dirname itself on the path ... put its parent on the path). Note that this is not the same thing as a classdef type of class (the NEW style of defining classes in MATLAB).
2 Kommentare
James Tursa
am 25 Jun. 2014
The new classdef style definitely has added OOP capability compared to the @dirname class style, but only for strict m-file usage. The new classdef classes are horrible to work with in mex routines, since there are no official API functions available to get pointers to the properties. In a mex routine, the only functions available for classdef property access do a deep data copy to get or put a property. So if you are working with very large arrays it can be a deal breaker. But with the old style classes you can get and set fields easily in a mex routine without making deep copies. This can be a huge advantage if you are working with large arrays.
per isakson
am 3 Jul. 2014
Bearbeitet: per isakson
am 3 Jul. 2014
@ClassName folders may be used with the new-style class definitions much in the same way as with the old-style. See
If you use multiple files to define a class, put all the class-
definition files (the file containing the classdef and all class
method files) in a single @ClassName folder. That @-folder must be
inside a folder that is on the MATLAB path. You can define only one
class in an @-folder.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Software Development Tools finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!