Programming and Data Types | ![]() ![]() |
Functionsコマンドで出力されるフィールド
functions
コマンドは、フィールドfunction
, type
, file
、そして、多重定義された関数に対してmethods
をもつMATLAB構造体を出力します。この節では、これらのフィールドについて説明します。
関数名
function
フィールドは、関数ハンドルに対応する関数名を保持するキャラクタ配列です。
type
フィールドは、以下の表の示す5つの文字列のうちの1つを保持するキャラクタ配列です。
関数タイプ |
タイプの詳細 |
simple |
非多重定義MATLAB組み込みあるいは、M-ファイル、または、実行されるまでtype が決定できない関数 |
subfunction |
MATLABサブ関数 |
private |
MATLABプライベート関数 |
constructor |
MATLABクラスのコンストラクタ |
overloaded |
多重定義されたく見込み、M-ファイル関数、あるいはコンストラクタ |
file
とmethods
の2つのフィールドの内容は、関数type
により異なります。
ファンクションファイル
file
フィールドは、つぎのうちのいずれかを保持するキャラクタ配列です。
MATLAB built-in function
'デフォルト 関数は、特定のデータタイプについて操作を行うことに特化していない関数です。関数呼び出しの引数が、定義された関数の特化されたバージョンをもつクラスを指定しない場合は、呼び出される関数がデフォルト関数です。
以下の例は、関数deblank
に対する関数ハンドルについて操作を行います。関数は、strfun
ディレクトリにデフォルトをもちます。これは、f.file
に示されています。 多重定義メソッドは、@cell
ディレクトリにあります。これは、f.methods.cell
に示されています。
f = functions(@deblank) f = function: 'deblank' type: 'overloaded' file: 'matlabroot\toolbox\matlab\strfun\deblank.m' methods: [1x1 struct] f.methods ans = cell: 'matlabroot\toolbox\matlab\strfun\@cell\deblank.m'
セル引数を使って関数@deblank
を実行する場合は、MATLABは@cell
ディレクトリのdeblank
メソッドを呼び出します。しかし、その他の引数タイプについては、MATLABはfile
フィールドに示されたデフォルトM-ファイルを呼び出します。.
関数メソッド
methods
フィールドは、タイプoverloaded
の関数に対してのみ存在します。このフィールドは、関数ハンドルの範囲であるすべての多重定義メソッドを識別する別個のMATLAB構造体です。
構造体は、関数ハンドルの各メソッドに対して1つのフィールドを含みます。フィールド名は、関数を多重定義するクラスです。各フィールドの値は、メソッドを定義するソースファイルのパスとファイル名を保持するキャラクタ配列です。
たとえば、関数display
に対する関数ハンドルは、以下に示すM-ファイルの範囲である場合があります。コマンドfunctions
は、関数polynom
, inline
, serial
, avifile
を多重定義する各クラスに対してフィールドをもつmethods
構造体を出力します。各クラスに対して、メソッドのソースファイルのパスとファイル名を示します。
f = functions(@display); f.methods ans = polynom: '\home\user4\@polynom\display.m' inline: 'matlabroot\toolbox\matlab\funfun\@inline\display.m' serial: 'matlabroot\toolbox\matlab\iofun\@serial\display.m' avifile: 'matlabroot\toolbox\matlab\iofun\@avifile\display.m'
![]() | 関数ハンドル情報の表示 | 関数ハンドルのタイプ | ![]() |