====== MATLAB PATH ====== ==== startup.m ==== When MATLAB starts, it will look for a **pathdef.m** file in its startup directory. It should not be edited - leave the default MATLAB path containing only MATLAB native toolboxes. The rest should be configured dynamically, as explained below. If a custom **startup.m** is found on the path, it will be executed: https://www.mathworks.com/help/matlab/ref/startup.html There are __two ways__ to configure place the startup.m on the path: 1. Custom startup folder set via MATLAB icon: (right click on the MATLAB icon | Properties | Start in ) (e.g. F:\Dropbox\Sources\Repos\matlab_config\MATLAB2014) allows controlling different paths and other settings via **startup.m** file placed in this folder. 2. Place custom startup.m to your [[https://www.mathworks.com/help/matlab/ref/userpath.html|userpath]] (type 'userpath' in the MATLAB command window to figure out yours). For example, a minimal **startup.m** for automatically including all GitHub repositories (but excluding not needed internal .git folders) can be just: addpath(genpath_exclude('YOUR_PATH_TO_REPOS','.git')); **Note:** [[https://github.com/igorkagan/matlab_config/blob/master/MATLAB2014/genpath_exclude.m|genpath_exclude.m]] should also be placed in the startup folder. Example startup.m for GitHub repositoriesand Fieldtrip and NeuroElf from DAG server (Y:): disp('Welcome to YOUR MATLAB VERSION, e.g. MATLAB2014a'); addpath(genpath_exclude('YOUR_PATH_TO_REPOS','.git')); %<--- !!! change 'YOUR_PATH_TO_REPOS' addpath('Y:\Sources\fieldtrip-20200604'); % or other path to fieldtrip ft_defaults % http://www.fieldtriptoolbox.org/faq/can_i_prevent_external_toolboxes_from_being_added_to_my_matlab_path/ [ftver, ftpath] = ft_version; rmpath(fullfile(ftpath, 'external', 'signal')) rmpath(fullfile(ftpath, 'external', 'stats')) rmpath(fullfile(ftpath, 'external', 'images')) addpath('Y:\Sources\NeuroElf_v11_7521'); addpath('Y:\Sources\NeuroElf_v11_7521\add_dag_ne_pipeline'); dbstop if error ---- See also https://github.com/igorkagan/matlab_config for the following example that includes genpath_exclude.m: disp('Welcome to MATLAB2014'); set_sources_path; edit; EditorMacro('Alt-Control-h', @ig_createHeaderComment_dag); dbstop if error The function **set_sources_path.m** can be something like the one below, to add all repositories but exclude not needed internal .git folders: addpath(genpath_exclude('F:\Dropbox\Sources\Repos','.git')); ==== pathdef.m ==== When MATLAB gives an "eval..." error on startup, permissions for pathdef.m are screwed up, see: [[https://www.mathworks.com/matlabcentral/answers/307356-why-do-i-get-an-error-using-eval-undefined-function-workspacefunc-for-arguments-of-type-struct]]