FreeMat
EXIST Test for Existence

Section: Inspection Functions

Usage

Tests for the existence of a variable, function, directory or file. The general syntax for its use is

  y = exist(item,kind)

where item is a string containing the name of the item to look for, and kind is a string indicating the type of the search. The kind must be one of

  • 'builtin' checks for built-in functions
  • 'dir' checks for directories
  • 'file' checks for files
  • 'var' checks for variables
  • 'all' checks all possibilities (same as leaving out kind)

You can also leave the kind specification out, in which case the calling syntax is

  y = exist(item)

The return code is one of the following:

  • 0 - if item does not exist
  • 1 - if item is a variable in the workspace
  • 2 - if item is an M file on the search path, a full pathname to a file, or an ordinary file on your search path
  • 5 - if item is a built-in FreeMat function
  • 7 - if item is a directory

Note: previous to version 1.10, exist used a different notion of existence for variables: a variable was said to exist if it was defined and non-empty. This test is now performed by isset.

Example

Some examples of the exist function. Note that generally exist is used in functions to test for keywords. For example,

  function y = testfunc(a, b, c)
  if (~exist('c'))
    % c was not defined, so establish a default
    c = 13;
  end
  y = a + b + c;

An example of exist in action.

--> a = randn(3,5,2)

a = 

(:,:,1) = 
    0.7785    0.6357    1.7582    1.5784   -0.8470 
    0.7235    1.0468   -0.6919   -0.6796    0.4767 
    0.2100    0.0865    1.5704   -0.1267    2.1381 

(:,:,2) = 
    1.5525   -0.2908   -1.4220    1.1076    0.2419 
    0.1652   -0.5668   -0.8018   -0.5975    0.8483 
    0.3147   -0.1109   -0.5203    0.5851    1.1503 

--> b = []

b = 
  []
--> who
  Variable Name       Type   Flags             Size
              a    double                    [3x5x2]
              b    double                    [0x0]
--> exist('a')

ans = 
 1 

--> exist('b')

ans = 
 1 

--> exist('c')

ans = 
 0