Sets Command-Window tab completion for specified functions & arguments: types and custom strings
Updated 4 Feb 2012

View License

Argument tab-completion occur when the user presses the <Tab> key following the function name in the Command Window. The list of available/possible arguments is then presented in a popup window.

TABCOMPLETE modifies the [matlabroot '/toolbox/local/TC.xml'] file to set/unset the tab-completion definition of the specified function. Note: changes take effect only after a Matlab restart.

TABCOMPLETE(funcName, argType1, argType2, ...) sets the tab-completion list for function arguments 1, 2, etc. argType can be one of these pre-defined keywords:
- 'var' - list of current workspace variables
- 'fun' - list of accessible functions
- 'subfun' - list of accessible sub-functions
- 'dir' - list of accessible folders (directories)
- 'file' - list of accessible files (of any type)
- 'mfile' - list of accessible *.m files (Matlab functions)
- 'matfile' - list of accessible *.mat files (Matlab data)
- 'figfile' - list of accessible *.fig files (figures)
- 'mdlfile' - list of accessible *.mdl files (Simulink models)
- 'mcospkg' - list of accessible MCOS class packages (R2010a+)
- 'mcosclass' - list of accessible MCOS classes (R2010a+)
- 'messageid' - list of accessible error/warning message IDs (R2011b+)
- (if none of the above is specified, 'subfun' is set automatically)
And in addition to the pre-defined kewords:
- additional string value(s) that will be added to the pop-up list

Multiple types for the same argument can be specified:
- as a cell array - example: {'var','file','on','off'}
- as a space-separated string - example: 'var file on off'

The last argType specified will apply for all subsequent arguments. The last argType may be '' (empty string) to indicate the end of tab-completed args. The last argType does *NOT* accept additional string values like the rest of the arguments.

TABCOMPLETE(funcName,'') removes all arg tab-completions for funcName (this is an immediate corollary of the previous paragraph).

definitions=TABCOMPLETE (without any arguments) returns a structure array listing all the current tab-completion definitions.

definitions=TABCOMPLETE(funcName) returns a structure listing the tab-completion definition for the specified function (if existing).

definitions=TABCOMPLETE(...) returns a structure array listing all tab-completion definitions BEFORE their modification by TABCOMPLETE.

tabcomplete('addpath','dir') % sets multiple folder completions
tabcomplete('edit','file fun') % sets multiple file/func completions
tabcomplete('cd','dir','') % sets a single-arg folder completion
=> *.mat followed by multiple variable-names or '-struct'/'-regexp'
tabcomplete('myFunc','') % removes myFunc's arg tab-completions
defs = tabcomplete('cd') % returns 'cd' function's tab-completions
defs = tabcomplete % returns all currently-defined tab-completions

This code heavily relies on undocumented and unsupported Matlab functionality. It works on Matlab 7+, but use at your own risk!

Technical explanation:
A technical explanation of the code in this utility can be found on

Bugs and suggestions:
Please send to Yair Altman (altmany at gmail dot com)

Cite As

Yair Altman (2024). TabComplete (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2008a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Environment and Settings in Help Center and MATLAB Answers

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes

Added MCOSPKG,MCOSCLASS (R2010a+), MESSAGEID (R2011b+) argTypes; warn when using extra vars in R2010a-R2011b; attempt to make TC.xml writeable before updating; fixed possible Matlab hang after answering the backup dialog window

Minor fix to msgbox in case of backup problem (per Yogesh's comment)