Location required for mex files?

8 views (last 30 days)
Bob Knighten
Bob Knighten on 11 Apr 2011
I am using a toolkit downloaded from the File Exchange. It calls for using mex to compile some .c files for speed. There are also .m versions of these same files. If one of these compiled functions is called from a .m file in the same directory as the .mex files, the .mex files are used and the speed is excellent. But if the .m file is located elsewhere instead the uncompiled (i.e. .m version) is used and the speed is bad. All files in question are in the path. Is there something else that can be done so the .mex files will be used?

Answers (3)

Robert Cumming
Robert Cumming on 11 Apr 2011
If you can ensure that the mex file is towards the beginning of the path string it will override the m files, see http://www.mathworks.com/help/techdoc/matlab_prog/f7-58170.html
  1 Comment
Bob Knighten
Bob Knighten on 20 Apr 2011
This would have solved the problem but for an odd reason because I would have moved the directory in which the files were located out of the bad location in the matlab/toolbox directory tree. See my answer below.

Sign in to comment.


James Tursa
James Tursa on 12 Apr 2011
My advice would be to put the mex files in the same directory as the same-named m-file. That way the mex file will always be called to execute the function, but the m-file can still be used for help text.
  1 Comment
Bob Knighten
Bob Knighten on 20 Apr 2011
That was already true, but as explained below the directory itself was misplaced.

Sign in to comment.


Bob Knighten
Bob Knighten on 20 Apr 2011
The answer, not likely to be found from my description of the problem, is in the Mathworks documentation: "We strongly recommend that you save any MATLAB code files you create and any files provided by MathWorks that you edit in a folder that is not in the matlabroot/toolbox folder tree." http://www.mathworks.com/help/techdoc/matlab_env/f8-28521.html
I violated that recommendation with the odd result that even though I made sure the relevant folder was in the path only the .m file was visible, not the .mex file. In any case moving the folder holding the .m and .mex files out of the matlabroot/toolbox folder tree solved the problem.

Tags

Products

Community Treasure Hunt

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

Start Hunting!