MATLAB Answers

1

Is there any workaround for the slow performance of path.m?

I use Matlab on multiple machines and generally do not have write access to the directory where the path is saved (i.e. I cannot use the set path dialog or savepath.m to store my path for future sessions). Furthermore, even if I could do this, I want to automatically accomodate changes to the subfolders in my code directories at every startup.
For this reason I generate my path at every startup using a startup script. This script takes several minutes to run with virtually all the time being spent in path.m in the call to the built-in matlabpath function. In a recent startup test, 116.927 seconds were spent on 497 calls to matlabpath.
Is there any way of speeding this up?

  0 Comments

Sign in to comment.

Products

1 Answer

Answer by Robert Cumming on 4 Oct 2012
 Accepted Answer

can you show your code? Are you adding network paths?
I use addpath in the startup.m with no problems (runs very quickly, a few seconds)/
If your sub padirectorys are dynamic then use:
addpath ( genpath ( pwd ) )

  4 Comments

Show 1 older comment
Oh, and, on some machines the path is a network path, but the performance is also slow for machines where it is a local path (same directory structure checked out using svn). The presented timings are for a local hard drive.
Posting this has made me realise I should perhaps be building a string similar to the output of genpath in the loop instead of calling addpath, and just calling it once at the end, maybe this will solve the problem.
building the string and then calling addpath worked. I'll mark your answer as correct since the comments contain the solution and you made the effort to answer, thanks.

Sign in to comment.