File Exchange

image thumbnail


version 1.2.0 (7.71 KB) by Rody Oldenhuis
Toggle MATLAB toolboxes on or off


Updated 27 May 2020

GitHub view license on GitHub

Utility to enable/disable MATLAB toolboxes.
S = TOGGLETOOLBOX('all') queries the on/off states of all installed

M = TOGGLETOOLBOX('names') returns the full names / directory names map
[M] applicable to the current MATLAB installation.

S = TOGGLETOOLBOX(toolbox, state) queries or sets the on/off state of the
MATLAB toolbox [toolbox] to [state]. The string or cellstring [toolbox] may
be equal to the toolbox' installation directory name (the same as used by
ver()), or the toolbox' full name. The string [state] may be one of 'on',
'off' or 'query'. The return argument [S] is a structure containing the
toolbox name(s) as fields, with the on/off state represented as true/false.

S = TOGGLETOOLBOX(..., permanency) for string [permanency] equal to
'permanent' will attempt to make the change persist between different
MATLAB sessions. For [permanency] equal to 'temporary' (the default), the
change will only last for the remainder of the current session.

TOGGLETOOLBOX(S0) will reset the on/off states of all toolboxes to the
states contained in [S0], where [S0] is a structure previously returned by
TOGGLETOOLBOX() as outlined above.

Disabling a toolbox is done by removing the relevant directories from the
MATLAB path. Since the order of the path is important for name resolution,
TOGGLETOOLBOX() attempts to keep the order of all paths as close to MATLAB's
startup path as possible. Calling TOGGLETOOLBOX() multiple times for different
toolboxes and arbitrary on/off states should not affect the overall path
order -- calling TOGGLETOOLBOX('all', 'on') afterwards results in a path
identical to the startup path.

Note that TOGGLETOOLBOX() generates a MAT file for both performance and
persistence between MATLAB sessions or across platforms. Please make sure
that TOGGLETOOLBOX() is located in a directory where it has write access.


>> M = toggleToolbox('names')%
M =
'aero' 'Aerospace Toolbox'
'aeroblks' 'Aerospace Blockset'
'bioinfo' 'Bioinformatics Toolbox'
'comm' 'Communications Toolbox'

>> S = toggleToolbox({'Aerospace Toolbox' 'Wavelet Toolbox'}, 'query')
S =
aero: 1
wavelet: 1

>> w = ver('wavelet')
w =
Name: 'Wavelet Toolbox'
Version: '4.5'
Release: '(R2010a)'
Date: '25-Jan-2010'

>> S = toggleToolbox({'Aerospace Toolbox' 'Wavelet Toolbox'}, 'off');
>> toggleToolbox({'Aerospace Toolbox' 'Wavelet Toolbox'}, 'query')
ans =
aero: 0
wavelet: 0

>> w = ver('wavelet')
w =
0x0 struct array with fields:

>> toggleToolbox(S);
>> toggleToolbox({'Aerospace Toolbox' 'Wavelet Toolbox'}, 'query')
ans =
aero: 1
wavelet: 1

>> % Cross-platform developer mode:
>> S = toggleToolbox('all', 'off');

Cite As

Rody Oldenhuis (2020). toggleToolbox (, GitHub. Retrieved .

Comments and Ratings (4)

Richard Lane

This toolbox is a nice idea but it didn't work for me on MATLAB 2018b as I have the 5g toolbox installed and '5g' is not a valid field name, as required by the current implementation of toggleToolbox. A change to the implementation should be able to sort this out, but that might be a bit of work.


To remove the requirement of the function being in a write-access folder, you could replace save and load with setpref and getpref. Since that also seems to store something to a drive location it is about as slow as using a mat file, but this will actually also persist over different paths where you store this function file.

I will definitely look into this as an alternative to my current work flow.

Eysteinn Finnsson

Very useful and works like a charm

Martin McCormick



See release notes for this release on GitHub:

See release notes for this release on GitHub:

No code changes; just updated the FEX page title

No code change; just added the PayPal link

Added somewhat more intuitive state names 'enable' and 'disable', rather than just 'on' and 'off'.

MATLAB Release Compatibility
Created with R2010a
Compatible with any release
Platform Compatibility
Windows macOS Linux