global
変数のグローバルとしての宣言
説明
メモ
グローバル変数は非効率的であり、エラーの診断が難しくなります。代わりに、入力変数をもつ関数を使用してください。詳細については、データの不要なコピーの回避を参照してください。
global var1 ... varN は、指定された変数をグローバルなスコープとして宣言します。
通常、MATLAB® 関数は、自身のローカル変数をもち、他の関数の変数やベース ワークスペースの変数とは区別されます。しかし、いくつかの関数すべてが特定の変数名を global として宣言した場合、それらすべてがその変数の 1 つのコピーを共有します。変数の値をある関数内で変更すると、その値はその変数を global として宣言したすべての関数で参照されます。
global ステートメントをはじめて実行したときにグローバル変数が存在しない場合、グローバル変数は空の 0x0 の行列に初期化されます。
グローバル変数と同じ名前をもつ変数が現在のワークスペースに既に存在する場合、MATLAB は警告メッセージを表示し、その変数の値とスコープをグローバル変数と一致するように変更します。
例
ヒント
グローバル変数をすべてのワークスペースから消去するには、
clear globalvariableを使用します。グローバル変数を現在のワークスペースから消去するが、他のワークスペースでは消去しない場合、
clearvariableを使用します。グローバル変数には、ベース ワークスペースや関数ワークスペースとは別に専用のワークスペースがあります。グローバル変数の使用は非効率的です。MATLAB はメモリの最適化を関数の入力変数に適用しますが、グローバル変数には適用しません。詳細については、データの不要なコピーの回避を参照してください。
また、グローバル変数には顕著なリスクが伴います。グローバル変数は任意の関数によってアクセスし更新することができます。その変数を使用する他の関数によって、予期しない結果が返される可能性があります。以下に例を示します。
"新しい" グローバル変数に誤って既存のグローバル変数と同じ名前を付けてしまうと、ある関数で使用する値が別の関数で上書きされる可能性があります。このエラーは診断が困難です。
複数の関数でグローバル変数が変更される場合、それらの関数を異なる順序で呼び出すと、異なる結果が生じる可能性があります。
グローバル変数はなるべく慎重に使用してください。変数とそのワークスペースの詳細については、ワークスペース間でのデータの共有ページの「グローバル変数」サブセクションを参照してください。
拡張機能
バージョン履歴
R2006a より前に導入