Programming and Data Types | ![]() ![]() |
ローカル変数とグローバル変数
コマンドラインでMATLAB変数に適用されるガイドラインが、M-ファイルの中の変数にも適用されます。
A
とa
は同じ変数ではありません。通常、M-ファイルで定義される各々のMATLAB関数は、自身のローカル変数をもち、他の関数のものと分離でき、ベースワークスペースとは異なるものです。しかし、ある関数でグローバルとして特別な名前を宣言すると、この変数の一つのコピーを、宣言したすべての関数で使うことができます。任意の関数の中で、この変数への割り当てを行なうことは、それをグローバルとして宣言する他のすべての関数で、それを使うことが可能になります。
Lotka-Volterra predator-preyモデルの相互作用係数 と
の影響を調べます。
function yp = lotka(t,y) %LOTKA Lotka-Volterra 予測子モデル global ALPHA BETA yp = [y(1) - ALPHA*y(1)*y(2); -y(2) + BETA*y(1)*y(2)];
global ALPHA BETA ALPHA = 0.01 BETA = 0.02 [t,y] = ode23('lotka',0,10,[1; 1]); plot(t,y)
2つのグローバルステートメントは、コマンドプロンプトでALPHA
とBETA
に値を代入し、lotka.m
で定義される関数の内部で使うことができます。これらは、会話的に変更でき、ファイルを編集しないで新しい解を得ることもできます。
MATLABアプリケーションの中で、グローバル変数を使うには、
global
として宣言します。グローバル変数をアクセスするワークスペースを作成するにも、コマンドラインからそれをglobal
として宣言します。global
コマンドを設定してください。M-ファイルの最初で設定することをお勧めします。MATLABグローバル変数名は、ローカル変数名に比べてより長く、より記述的に付けます。そして、すべてを大文字で表すこともあります。これらのことは、必ずしも必要なことではありませんが、MATLABコードを読み易くしたり、グローバル変数を再定義するときの間違いを少なくするためにお勧めします。
![]() | 転送する引数の数を可変にする | 固定変数 | ![]() |