Main Content

ベース ワークスペースと関数ワークスペース

このトピックでは、ローカル関数、入れ子関数、スクリプトのワークスペースなどを含む関数ワークスペースと、ベース ワークスペースとの違いを説明します。

"ベース ワークスペース" にはコマンド ラインで作成した変数が保存されます。これには、コマンド ラインまたはエディターから実行したスクリプトによって作成される変数もすべて含まれます。ベース ワークスペースの変数は、ユーザーがクリアするか、MATLAB® セッションを終了するまで存続します。

関数は、ベース ワークスペースを使用しません。関数には、それぞれ独自の "関数ワークスペース" があります。各関数のワークスペースは、データの整合性を確保するためにベース ワークスペースやその他のワークスペースとは分離しています。共通ファイル中のローカル関数にも、それぞれ専用のワークスペースがあります。関数ワークスペースに固有の変数は "ローカル" 変数と呼ばれます。一般に、ローカル変数はその関数呼び出しが終了するとメモリから削除されます。

関数からスクリプトを呼び出す場合、そのスクリプトでは関数ワークスペースが使用されます。

ローカル関数と同様に、入れ子関数にも専用のワークスペースがあります。ただし、入れ子関数のワークスペースは次の 2 点で他と大きく異なります。

  • 入れ子関数は、自身を含む関数のワークスペースにある変数にアクセスし、変更することができます。

  • 入れ子関数またはそれを含む関数内の変数は、すべて明示的に定義しなければなりません。したがって、変数に値を代入する関数やスクリプトを呼び出すには、関数ワークスペースにその変数が既に存在していなければなりません。

関連する例

詳細