matlab全局變量和局部變量的區別?
舉例說明什么是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。