Main Content


Check existence of variable, script, function, folder, or class



exist name returns the type of name as a number. This list describes the type associated with each value:

  • 0 — name does not exist or cannot be found for other reasons. For example, if name exists in a restricted folder to which MATLAB® does not have access, exist returns 0.

  • 1 — name is a variable in the workspace.

  • 2 — name is a file with extension .m, .mlx, or .mlapp, or name is the name of a file with a non-registered file extension (.mat, .fig, .txt).

  • 3 — name is a MEX-file on your MATLAB search path.

  • 4 — name is a loaded Simulink® model or a Simulink model or library file on your MATLAB search path.

  • 5 — name is a built-in MATLAB function. This does not include classes.

  • 6 — name is a P-code file on your MATLAB search path.

  • 7 — name is a folder.

  • 8 — name is a class. (exist returns 0 for Java classes if you start MATLAB with the -nojvm option.)

MATLAB searches starting at the top of the search path, and moving down until a result is found or the last folder on the path is reached. If more than one name exists in a folder, MATLAB displays the first instance of name, according to the Function Precedence Order. Folders are an exception to the function precedence rules. They have precedence over all types except for variables and built-in functions.

For example, if name matches both a file with a .m extension and a P-code file, then exist returns 6, identifying it as a P-code file. If name matches both a variable and a P-code file, exists returns 1, identifying it as a variable. If name matches both a folder and a MATLAB function, exist returns 7, identifying it as a folder.


exist name searchType returns the type of name, restricting results to the specified type, searchType. If name of type searchType does not exist, MATLAB returns 0.


A = exist(___) returns the type of name to A.


collapse all

Create a variable named testresults, and then confirm its existence in the workspace.

testresults = magic(5);
exist testresults
ans = 1

A variable named testresults exists in the workspace.

Create the folder myfolder, and then check its existence as a folder.

mkdir myfolder;
exist myfolder dir
ans = 7

If you specify the type as file, MATLAB® searches for both files and folders, therefore returning the same result.

exist myfolder file
ans = 7

Check whether the plot function is a built-in function or a file.

A = exist('plot')
A = 5

This indicates that plot is a built-in MATLAB function.

Input Arguments

collapse all

Name of variable, script, function, folder, or class, specified as a character vector or string scalar.

name can include a partial path, but must be one of these:

  • A folder on the search path

  • In a folder on the search path

  • The current folder

  • In the current folder

Subfolders of folders on the path are not searched.

Otherwise, name must include a full path.

If name specifies a file with a non-registered file extension (.mat, .fig, .txt), include the extension. You can also include an extension to prevent conflict with other similar file names. For example, exist file.txt or exist("file.txt").


MATLAB does not examine the contents or internal structure of a file and relies solely on the file extension for classification.

Data Types: char | string

Type of results to search for, specified as one of these values:

searchTypeDescriptionPossible Return Values


Checks only for built-in functions.

5, 0


Checks only for classes.

8, 0


Checks only for folders.

7, 0


Checks only for files or folders.

2, 3, 4, 6, 7, 0


Checks only for variables.

1, 0

Alternative Functionality

  • To check the existence of a file or folder, you also can use the isfolder or isfile functions. exist searches for files and folders on the search path, which can lead to unexpected results. isfolder and isfile search for files or folders only on the specified path or in the current folder, which can lead to clearer and faster results.

Extended Capabilities

Version History

Introduced before R2006a