What does @ on a dir of *.m files mean?
7 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (2 件)
James Tursa
2014 年 6 月 20 日
編集済み: James Tursa
2014 年 6 月 20 日
@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 件のコメント
James Tursa
2014 年 6 月 25 日
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
2014 年 7 月 3 日
編集済み: per isakson
2014 年 7 月 3 日
@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 件のコメント
参考
カテゴリ
Help Center および File Exchange で Software Development Tools についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!