举例说明什么是MATLAB全局变量:与局部变量的区别
如果在有几个函数中和基本工作空间中都声明了一个特殊的变量名作为全局变量(global),则在这几个函数和基本工作空间中都可以访问全局变量。
局部变量是存在于函数空间内部的中间变量,产生于该函数的运行过程中,其影响范围也仅限于该函数本身。全局变量是在不同的工作空间中可以被共享的变量。如果某个函数的运行使全局变量的内容发生了变化,那么其他的函数空间以及基本工作空间中的同名变量也就随之变化。只有把与全局变量联系的所有工作空间都删除,全局变量才能删除。
每个希望共享全局变量的函数或MATLAB基本工作空间,必须逐个用global对具体变量加以专门定义,其格式如下:
global var1 var2
如果一个M文件中包含的子函数需要访问全局变量,则需要在子函数中声明该变量;如果需要在命令行中访问该变量,则需要在命令行中声明该变量。
需要注意的是,MATLAB中,变量名的定义区分大小写。
例题 全局变量的使用。
输入如下程序:
function y=myprogram(x)
global T
T=T*2;
y=exp(T)*sin(x);
然后在命令窗口声明全局变量,再赋值调用:
>> global T
>> T=0.3
T=
0.3000
>> myprogram(pi/2)
ans=
1.8221
>> exp(T)*sin(pi/2)
ans=
1.8221
>>T=0.6000
通过实例可见,用global将T声明为全局变量后,函数内部对T的修改也会直接作用到MATLAB工作区中。函数myprogram调用一次后,T的值从0.3变为0.6。