MATLAB Answers

Saving my own function to be used as MATLAB built-in functions

251 views (last 30 days)
Saeid
Saeid on 26 Apr 2018
Commented: Saeid on 27 Apr 2018
I would like to write a function that can be called from anywhere regardless of my current working path, just like I use integral(...) or sin(...). How should I change the setup to be able to do this?

  2 Comments

Jan
Jan on 26 Apr 2018
You are a member of this forum for 2 years now and asked 44 questions. And this is the first time you want to add a user defined folder to the path? I cannot image how you can work with Matlab without saving files to folders in the path.
Saeid
Saeid on 26 Apr 2018
Believe it or not, this is the first time I really need to do that.

Sign in to comment.

Accepted Answer

Ahmet Cecen
Ahmet Cecen on 26 Apr 2018
Edited: Ahmet Cecen on 26 Apr 2018
Create a startup.m file in your MATLAB user folder(usually Documents/MATLAB) then use addpath in that file.
MATLAB will execute that file everytime it starts up, meaning the paths you specify in that file will be "permenantly" available in any folder for all intents and purposes. (At least for all cases someone asking this question will likely encounter.)

  0 Comments

Sign in to comment.

More Answers (1)

the cyclist
the cyclist on 26 Apr 2018
Edited: the cyclist on 26 Apr 2018
One way is to put any such functions into a particular directory (e.g. "utilities"), and then add that directory to the search path using the addpath command. I put the addpath command in my startup.m file, so it gets called every time I start MATLAB.

  4 Comments

Show 1 older comment
Saeid
Saeid on 26 Apr 2018
I tried this:
savepath D:\Documents\MATLAB\Examples
and got this message:
Warning: Unable to save path to file 'D:\Documents\MATLAB\Examples'.
You can save your path to a different location by calling SAVEPATH
with an input argument that specifies the full path. For MATLAB to
use that path in future sessions, save the path to 'pathdef.m' in
your MATLAB startup folder.
> In savepath (line 145)
Jan
Jan on 27 Apr 2018
A correct usage of savepath is:
addpath('D:\Documents\MATLAB\Examples', '-end');
savepath
Then the path is saved to the matlabroot folder, but this requires admin privilegs. Therefore it might be better to follow the advice given in the warning message: save the pathdef.m file to your startup folder - the folder which is active initially.
It is not clear, why the saving failed in your case. Is the folder existing and do you have write privileges?

Sign in to comment.

Sign in to answer this question.