複製鏈接
請複製以下鏈接發送給好友

Global

(程序函數)

鎖定
Global,是一種程序函數,用於聲明全局變量,適用於MATLAB語言。
外文名
Global
所屬學科
計算機
功    能
聲明全局變量

Global應用

MATLAB

Global函數global簡介

函數功能:聲明全局變量
語法格式:global X Y Z
聲明X、Y、Z為全局變量
通常,在MATLAB中,每個函數都有屬於它自己的局部變量,這些局部變量不能被與該函數處於同一個等級上的函數訪問。
例如:
function main
close all; clear; clc;
function fun_a
num_in_a = 5;
fprintf('It is in function A: %f,\n', num_in_b); % error
end
function fun_b
num_in_b = 6;
fprintf('It is in function B: %f,\n', num_in_a); % error
end
fun_a;
fun_b;
end
由於num_in_a,num_in_b分別是函數fun_a和fun_b的局部變量, 因此fun_a只能訪問num_in_a而不能訪問num_in_b。
但是如果,函數不在同一個等級上。例如,嵌套函數, 情況就有所不一樣:
function main
close all; clear; clc;
function fun_a
% fprintf('It is in function A: %f,\n', num_in_b); % error
function fun_b
num_in_b = 6;
fprintf('It is in function B: %f,\n', num_in_a); % correct
end
num_in_a = 5;
fun_b;
end
fun_a;
end
定義全局變量就是可以讓這些函數共享這個全局變量,即只要在這個函數內部加上:
global X Y Z
那麼,該函數便擁有了對X、Y、Z的訪問權。
而且全局變量在內存中也只有一份, 在一個函數中修改, 在另外一個函數中的值也會發生變化。
相關函數:isglobal

Global程序示例

function streamline_test
close all; clear; clc;
global startx starty startz
startx = 1; starty = 1; startz = 1;
uicontrol(gcf, 'Style','pushbutton','String','starty ++',...
'Position',[250,20,70,25],...
'Callback',{@StartYAdd_Callback});
uicontrol(gcf, 'Style','pushbutton','String','starty --',...
'Position',[350,20,70,25],...
'Callback',{@StartYMinus_Callback});
uicontrol(gcf, 'Style','pushbutton','String','display',...
'Position',[450,20,70,25],...
'Callback',{@DispNum_Callback});
end
function StartYAdd_Callback(~, ~)
global starty
starty = starty + 1;
end
function StartYMinus_Callback(~, ~)
global starty
starty = starty - 1;
end
function DispNum_Callback(~, ~)
global startx starty startz
fprintf('startx: %f, starty: %f, startz: %f\n', startx, starty,
startz);
end