Main Content

global

変数のグローバルとしての宣言

説明

global var1 ... varN は、変数 var1 ... varN をグローバルなスコープで宣言します。

通常、MATLAB® 関数は、自身のローカル変数をもち、他の関数の変数やベース ワークスペースの変数とは区別されます。しかし、いくつかの関数すべてが特定の変数名を global として宣言した場合、それらすべてがその変数の 1 つのコピーを共有します。変数の値をある関数内で変更すると、その値はその変数を global として宣言したすべての関数で参照されます。

global ステートメントをはじめて実行したときにグローバル変数が存在しない場合、グローバル変数は空の 0x0 の行列に初期化されます。

グローバル変数と同じ名前をもつ変数が現在のワークスペースに既に存在する場合、MATLAB は警告メッセージを表示し、その変数の値とスコープをグローバル変数と一致するように変更します。

すべて折りたたむ

現在の作業フォルダー内で、グローバル変数に値を設定する関数を作成します。

function setGlobalx(val)
global x
x = val;

現在の作業フォルダー内で、グローバル変数の値を返す関数を作成します。これら 2 つの関数は個別の関数ワークスペースをもちますが、どちらもグローバル変数にアクセスできます。

function r = getGlobalx
global x
r = x;

グローバル変数 x に値を設定し、別のワークスペースからその値を取得します。

setGlobalx(1138)
r = getGlobalx
r =

        1138

前の例で定義した関数を使用して、グローバル変数に値を代入します。

clear all
setGlobalx(42)

グローバル変数 x の値を表示します。変数がグローバルであるにもかかわらず、コマンド ラインではアクセスできません。

x
Undefined function or variable 'x'.

コマンド ラインで x をグローバル変数として宣言し、その値を表示します。

global x
x
x =

    42

x の値を変更し、前の例で定義した関数を使用して別のワークスペースからグローバル変数の値を返します。

x = 1701;
r = getGlobalx
r =

        1701

ヒント

  • グローバル変数をすべてのワークスペースから消去するには、clear global variable を使用します。

  • グローバル変数を現在のワークスペースから消去するが、他のワークスペースでは消去しない場合、clear variable を使用します。

バージョン履歴

R2006a より前に導入