Declare variables as global
global var1 ... varN declares variables
... varN as global in scope.
Ordinarily, each MATLAB® function has its own local variables,
which are separate from those of other functions and from those of
the base workspace. However, if several functions all declare a particular
variable name as
global, then they all share a
single copy of that variable. Any change of value to that variable,
in any function, is visible to all the functions that declare it as
If the global variable does not exist the first time you issue
global statement, it is initialized to an
If a variable with the same name as the global variable already exists in the current workspace, MATLAB issues a warning and changes the value of that variable and its scope to match the global variable.
Share Global Variable Between Functions
Create a function in your current working folder that sets the value of a global variable.
function setGlobalx(val) global x x = val;
Create a function in your current working folder that returns the value of a global variable. These two functions have separate function workspaces, but they both can access the global variable.
function r = getGlobalx global x r = x;
Set the value of the global variable,
and obtain it from a different workspace.
setGlobalx(1138) r = getGlobalx
r = 1138
Share Global Variable Between Function and Command Line
Assign a value to the global variable using the function that you defined in the previous example.
clear all setGlobalx(42)
Display the value of the global variable,
Even though the variable is global, it is not accessible at the command
Undefined function or variable 'x'.
x as a global variable at the
command line, and display its value.
global x x
x = 42
Change the value of
x and use the function
that you defined in the previous example to return the global value
from a different workspace.
x = 1701; r = getGlobalx
r = 1701
To clear a global variable from all workspaces, use
To clear a global variable from the current workspace but not other workspaces, use
Introduced before R2006a