| MATLAB Function Reference | ![]() |
グラフィカルインタフェース
関数 which の別な使い方は、Current Directory browser を使うものです。これをオープンするには、MATLAB の ビュー(View) から カレントディレクトリ(Current Directory) を選択します。
表示
which fun which classname/fun whichprivate/fun which classname/private/fun which fun1infun2 which fun(a,b,c,...) which file.ext which fun-alls = which('fun',...)
詳細
which fun
は、引数 fun に関する絶対パスを表示します。fun は、条件により、which の出力は、変わります。
which は、対応するファイルの絶対パスを表示します。which は、変数、または、組み込み関数として、fun を識別するメッセージを表示します。which は、メソッドに対するパッケージ、クラス、メソッド名を表示します。fun が、多重定義された関数、または、メソッドの場合、which fun は、最初に検出される関数、または、メソッドのパス名のみを出力します。
which classname/fun
は、MATLAB クラス classname の中の fun メソッドを定義する M-ファイルの絶対パス名を表示します。たとえば、which serial/fopen は、MATLAB クラスディレクトリ @serial の中の fopen.m のパスを表示します。
which は、プライベート関数に検索範囲を限定します。たとえば、private/fun
which private/orthog は、toolbox\matlab\elmat のサブディレクトリ\private の orthog.m のパスを表示します。
which classname/ は、MATLAB クラス private/fun
classname で定義されるプライベートメソッドに探索の範囲を制限します。たとえば、which dfilt/private/todtf は、dfilt クラスの private ディレクトリの todtf.m に対するパスを表示します。
which fun1 は、M-ファイル in fun2
fun2 の中の関数 fun1 へのパス名を表示します。この型を使って、fun1 のサブ関数、または、プライベートバージョンが、パス上の関数からではなく、fun2 からコールされているか否かを決定することができます。たとえば、which get in editpath は、関数 get が、editpath.m でコールされていることを示します。
fun2 のデバッギングで、which fun1 を使って、同じ結果を得ます。
which fun(a,b,c,...)
は、与えられた入力引数と共に指定した関数へのパスを表示します。たとえば、d が、データベースドライバオブジェクトの場合、which get(d) は、パス toolbox\database\database\@driver\get.m を表示します。
which file.ext
は、カレントの作業用ディレクトリに設定される場合、指定したファイルの絶対パス名を表示します。
which fun は、名前 -all
fun をもつ MATLAB パス上のすべてのアイテムへのパスを表示します。出力リストの最初のアイテムは、-all を使わないで、通常、which により出力されるものです。リストの中の他の部分は、特別な環境のもとで、隠されたり、まちゃは、実行されたりできます。関数 which の上での表示のいずれかと共に、量 -all を使うことができます。
s = which('fun',...)
は、文字列 s の中に、which の結果を出力します。組み込み関数、または、ワークスペース変数に対して、s は、文字列 built-in、または、variable のいずれかを出力します。関数 which の上の表示法のいずれかを使って、出力変数を指定できます。
-all が、この型で使われる場合、出力 s は、常に、文字列のセル配列になります。これは、文字列が一つの場合でもセル配列になります。
例題
つぎのステートメントの最初の部分は、inv が組み込み関数であることを表しています。2番目のものは、pinv が、MATLAB Toolbox の matfun ディレクトリの中に位置することを示しています。
which inv inv is a built-in function. which pinv matlabroot\toolbox\matlab\matfun\pinv.m
MATLAB serial クラスオブジェクト上で使われる関数 fopen を検出されには、つぎのようにします。
which serial/fopen matlabroot\toolbox\matlab\iofun\@serial\fopen.m % serial method
Java Frame クラスのオブジェクト上で使われている setTitle メソッドを検出するには、クラスは、MATLAB の中に最初にロードされている必要があります。クラスは、クラスに代わるものを作成するときに、ロードされます。
frameObj = java.awt.Frame; which setTitle java.awt.Frame.setTitle % フレームメソッド
つぎの例題は、which fun(a,b,c,...) の型を使います。which から戻る応答は、関数 feval の引数に依存します。fun が、関数ハンドルの場合、MATLAB は、組み込みの feval を使って、関数を計算します。
fun = @abs; which feval(fun,-2.5) feval is a built-in function.
fun が、inline 関数の場合、MATLAB は、inline クラスの feval メソッドを使って、関数を計算します。
fun = inline('abs(x)');
which feval(fun,-2.5)
matlabroot\toolbox\matlab\funfun\@inline\feval.m % インラインメソッド
出力引数を設定する場合、which は、変数に文字列のセル配列を戻します。括弧とシングルコートで、すべての引数を括る場合は、which の function 関数を使う必要があります。
s = which('private/stradd','-all');
whos s
Name Size Bytes Class
s 3x1 562 cell array
Grand total is 146 elements using 562 bytes
参考
dir, doc, exist, lookfor, path, type, what, who
| whatsnew | while | ![]() |