global
将变量声明为全局变量
说明
注意
全局变量效率低下,且使得错误难以诊断。请改用带输入变量的函数。有关详细信息,请参阅避免不必要的数据副本。
global var1 ... varN
将指定的变量声明为全局变量。
通常每个 MATLAB® 函数均有各自的局部变量,这些局部变量与其他函数的局部变量和基础工作区的局部变量是分开的。但是,如果多个函数都将特定的变量名称声明为 global
,则它们都共享该变量的一个副本。在任何函数中对该变量的值做任何更改,在将该变量声明为全局变量的所有函数中都是可见的。
如果首次发出 global
语句时尚不存在全局变量,则此语句初始化为空 0x0
矩阵。
如果当前工作区中已经存在与全局变量具有相同名称的变量,则 MATLAB 会发出警告,并更改该变量的值及其范围以匹配全局变量。
示例
提示
要从所有工作区中清除全局变量,请使用
clear global
variable
。要从当前工作区而不从其他工作区中清除全局变量,请使用
clear
variable
。全局变量拥有自己的工作区,这些工作区与基础工作区和函数工作区分开。使用全局变量会效率低下。MATLAB 将内存优化应用于函数中的输入变量,但不应用于全局变量。有关详细信息,请参阅避免不必要的数据副本。
同样,全局变量具有显著风险。任何函数都可以访问和更新全局变量。使用此类变量的其他函数可能返回意外结果。例如:
如果您无意间提供与现有全局变量同名的“新”全局变量,一个函数可能覆盖另一个函数预期的值。此类错误很难诊断。
如果一个全局变量在多个函数中发生更改,以不同顺序调用这些函数会导致不同结果。
请尽可能谨慎使用全局变量。有关变量和工作区的详细信息,请参阅 在工作区之间共享数据 页上的“全局变量”小节。
扩展功能
版本历史记录
在 R2006a 之前推出