Global[程式函式]

Global[程式函式]
更多義項 ▼ 收起列表 ▲

MATLAB

函式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

程式示例

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

相關詞條

相關搜尋

熱門詞條

聯絡我們