Programming and Data Types | ![]() ![]() |
MATLABコマンドライン、または、他のM-ファイルの内部からFunction M-ファイルを読むことができます。すべての必要な引数、すなわち、丸括弧の中に入力引数、鍵括弧の中に出力引数を設定してください。
Function名の認識について
MATLABは、新しい名前が入ってくると、つぎのステップに従って、設定したFunctionの認定を行ないます。
関数名が重複している場合、MATLABは上の規則に従って最初にマッチするものを実行します。また、関数名をオーバロードすることもできます。これは、付加的なパッチ則を使い、14章の"クラスとオブジェクト"で議論します。
Functionを読み込んだとき、何が生じますか
コマンドライン、または、他のM-ファイルからFunction M-ファイルを読み込むと、MATLABは、Functionを擬似コードに分解したり、メモリに保存します。これにより、MATLAB実行中に、その関数を使うたびに毎回擬似コードに分解はしません。擬似コードは、コマンド clear
を使ってクリアするか、MATLABを終了するまでメモリ内に残ります。
clear
コマンドの使い方を示します。
|
ワークスペースから指定した関数を消去 |
|
すべてのコンパイルした M-ファイルを消去 |
|
すべてのFunctionと変数を消去 |
P-コードファイルの作成
pcode
コマンドを使って、その後でMATLABで使うために、Function、または、Scriptsの分解したバージョンをセーブすることができます。例えば、
pcode average
は、average.m
を分解し、average.p
と名付けられたファイルに擬似的にコード化されたものをセーブします。これは、最初にaverage.m
を分解し、その結果をセーブし、その後、実行するときにaverage.p
を使います。
MATLABは分解するのにあまり時間を使いません。従って、pcode
コマンドにより、処理スピードが変化することはあまりありません。
pcode
は、大きなGUIアプリケーションには、スピード的に非常に効率的に働きます。GUIでは、アプリケーションが可視化される前に、多くのM-ファイルを分解する必要があります。
pcode
に関する他の考えは、ユーザ自身のM-ファイルのアルゴリズムを隠すためです。
MATLABは、どのように Functionへ引数を渡しますか
プログラマの立場から、MATLABはすべての関数引数を値として取り扱います。しかし、実際に、MATLABは、関数が変更した引数のみの値を渡します。Functionが引数を変更しなく、単に計算の中でこれを簡単に使うと、MATLABはメモリ使用を最適化するために基準に従って引数を渡します。
Functionワークスペース
各M-ファイルFunctionは、それ自身のワークスペースをもち、それ自身を実行するMATLABのベースワークスペースとは異なります。このエリアは、Functionワークスペースと呼ばれ、各関数がもつワークスペースの内容をもっています。
MATLABを使っている間、ユーザがアクセスできる変数は、引数で設定しているもののみで、ベースのワークスペースに存在するものか、または、他の関数の引数になっているもののみです。ユーザがFunctionに転送する変数は、読み込むFunctionの中の引数でなければなりません。そして、Functionは、出力引数を読み込んだワークスペースに返します。しかし、変数をグローバル変数として設定することができます。グローバル変数は、複数のワークスペースの中でアクセスすることができます。
![]() | Function名 | Function引数の数のチェック | ![]() |