-
Global
(程序函數)
鎖定
- 外文名
- Global
- 所屬學科
- 計算機
- 功 能
- 聲明全局變量
目錄
- 1 應用
- 2 函數global簡介
- 3 程序示例
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
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:4次歷史版本
- 最近更新: 乐颜tui