UniqueFuncNames - Check uniqueness of function names
If you install a large 3rd party toolbox, the file names may interfere with other installed toolboxes. This simple funtion compares the names of all M-, P- and Mex-files found in the Matlab path and displays non-unique names.
P- and Mex-files with the same name as a corresponding M-file are accepted, if they are found in the same folder.
Local subfunctions inside the M- or P-file and nested functions are not taken into account, because it is assumed, that a potential shadowing is wanted.
Class paths as "\@cell" and package paths as "\+mypackage" are not considered in this version.
OUTPUT: Logical flag, TRUE if the names are unique considering some
1. Files which are intentionally not unique:
"Contents.m" exists in each folder.
"prefspanel.m" exists in some folder to register control panels.
"messageProductNameKey" returns the product key for toolboxes.
2. Some user defined folders might contain functions, which are wanted to
shadow function of Matlab's or user define toolbox functions, e.g. to
improve them. Such folders must be inserted in a leading position in the
Matlab path. A further example is a folder, which contains Mex functions,
which are compiled for a specific Matlab version, e.g. if you run Matlab
6.5 (DLL) and 7 (MEXW32) simulataneously.
3. Further exceptions occur e.g. in Matlab 2009a:
Exclude one of them using the full file name including the path.
The exceptions depend on your installed toolboxes and have to be adjusted to
your machine. The corresponding lines are marked by '###' in the source.
I'd appreciate all comments and ideas for improvements and additions.
For further debugging see also:
CHECKVARS (Matt Fig):
Jan (2022). UniqueFuncNames (https://www.mathworks.com/matlabcentral/fileexchange/27861-uniquefuncnames), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!