语法
说明
global var1 ... varN
将变量 var1 ... varN
声明为作用域中的全局变量。
通常每个 MATLAB® 函数均有各自的局部变量,这些局部变量与其他函数的局部变量和基础工作区的局部变量是分开的。但是,如果多个函数都将特定的变量名称声明为 global
,则它们都共享该变量的一个副本。在任何函数中对该变量的值做任何更改,在将该变量声明为全局变量的所有函数中都是可见的。
如果首次发出 global
语句时尚不存在全局变量,则此语句初始化为空 0x0
矩阵。
如果当前工作区中已经存在与全局变量具有相同名称的变量,则 MATLAB 会发出警告,并更改该变量的值及其范围以匹配全局变量。
示例
在函数之间共享全局变量
在当前的工作文件夹中创建一个设置全局变量值的函数。
function setGlobalx(val) global x x = val;
在当前的工作文件夹中创建一个返回全局变量值的函数。这两个函数拥有单独的函数工作区,但它们两个都可以访问全局变量。
function r = getGlobalx global x r = x;
设置全局变量 x
的值并从不同的工作区中获取。
setGlobalx(1138) r = getGlobalx
r =1138
在函数与命令行之间共享全局变量
使用您在上一个示例中定义的函数对全局变量赋值。
clear all setGlobalx(42)
显示全局变量 x
的值。即使变量为全局变量,也不能在命令行中访问。
x
Undefined function or variable 'x'.
在该命令行中将 x
声明为全局变量并显示它的值。
global x x
x =42
更改 x
的值并使用您在上一个示例中定义的函数,以便从不同的工作区返回全局值。
x = 1701; r = getGlobalx
r =1701
提示
-
要从所有工作区中清除全局变量,请使用
clear global
variable
。 -
要从当前工作区而不从其他工作区中清除全局变量,请使用
clear
variable
。
%在主程序中定义全局变量
global T %定义全局变量
T=3;
Y=func(3)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
func.m
function y = func( x )
global T
if x==T
y=1;
else
y=0;
end