MATLAB Function Reference |
Syntax
Description
global X Y Z
defines X
, Y
, and Z
as global in scope.
Ordinarily, each MATLAB function, defined by an M-file, has its own local variables, which are separate from those of other functions, and from those of the base workspace. However, if several functions, and possibly the base workspace, all declare a particular name as global, they all share a single copy of that variable. Any assignment to that variable, in any function, is available to all the functions declaring it global.
If the global variable does not exist the first time you issue the global
statement, it is initialized to the empty matrix.
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 to match the global.
Remarks
Use clear globa
l
variable
to clear a global variable from the global workspace. Use clear
variable
to clear the global link from the current workspace without affecting the value of the global.
To use a global within a callback, declare the global, use it, then clear the global link from the workspace. This avoids declaring the global after it has been referenced. For example,
uicontrol('style', 'pushbutton', 'CallBack', ... 'global MY_GLOBAL, disp(MY_GLOBAL), ... MY_GLOBAL = MY_GLOBAL+1, ... clear MY_GLOBAL', 'string','count')
There is no function form of the global command (i.e., you cannot use parentheses and quote the variable names).
Examples
Here is the code for the functions tic
and toc
(some comments abridged). These functions manipulate a stopwatch-like timer. The global variable TICTOC
is shared by the two functions, but it is invisible in the base workspace or in any other functions that do not declare it.
function tic % TIC Start a stopwatch timer. % TIC; any stuff; TOC % prints the time required. % See also: TOC, CLOCK. global TICTOC TICTOC = clock; function t = toc % TOC Read the stopwatch timer. % TOC prints the elapsed time since TIC was used. % t = TOC; saves elapsed time in t, does not print. % See also: TIC, ETIME. global TICTOC if nargout < 1 elapsed_time = etime(clock, TICTOC) else t = etime(clock, TICTOC); end
See Also
ginput | gmres |
© 1994-2005 The MathWorks, Inc.