ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

which

関数やファイルの位置の出力

構文

  • which item
  • which fun1 in fun2
  • which ___ -all
  • str = which(item)
  • str = which(fun1,'in',fun2)
  • str = which(___,'-all')

説明

which item は、item の絶対パスを表示します。

  • item が MATLAB® コード ファイル (拡張子が .m.mlx または.p) または Simulink® モデル (拡張子が .slx または .mdl) 内の MATLAB 関数である場合、which は対応するファイルの絶対パスを表示します。item は MATLAB パス上になければなりません。

  • item が読み込まれた Java® クラス内のメソッドの場合、which はそのメソッドのパッケージ、クラスおよびメソッド名を表示します。

  • item がワークスペース変数の場合、関数 which は変数として item を識別するメッセージを表示します。

  • item が拡張子を含むファイル名であり、現在の作業フォルダーまたは MATLAB パス上にある場合、whichitem の絶対パスを表示します。

item がオーバーロードされた関数またはメソッドの場合、which item は、最初に検出された関数またはメソッドのパスのみを返します。

which fun1 in fun2 は、ファイル fun2 から呼び出される関数 fun1 のパスを表示します。この構文を使用して、パス上の関数ではなくローカル関数が呼び出されているかどうかを判断できます。この構文は、入れ子にされた関数の位置は特定しません。

which ___ -all は、要求された名前をもつ MATLAB パス上のすべてのアイテムのパスを表示します。このようなアイテムには、インスタンス化されているクラスのメソッドが含まれます。前述の構文のいずれかの入力引数を使用して -all を使用することができます。

str = which(item)item の絶対パスを文字列 str に返します。

str = which(fun1,'in',fun2) は、ファイル fun2 から呼び出される関数 fun1 のパスを返します。この構文を使用して、パス上の関数ではなくローカル関数が呼び出されているかどうかを判断できます。この構文は、入れ子にされた関数の位置は特定しません。

str = which(___,'-all')which の結果を文字列または文字列のセル配列 str で返します。この構文では、前述の構文グループの入力引数のいずれかを使用できます。

すべて折りたたむ

関数 pinv を検索します。

which pinv
matlabroot\toolbox\matlab\matfun\pinv.m

pinv は MATLAB の matfun フォルダーにあります。

文字列 str にパスを返す関数構文を使用することもできます。関数形式の which を使用する場合は、すべての入力文字列を単一引用符で囲ってください。

str = which('pinv');

Java クラスのインスタンスを作成します。これによってクラスが MATLAB に読み込まれます。

myDate = java.util.Date;

setMonth メソッドを検索します。

which setMonth
setMonth is a Java method  % java.util.Date method

private フォルダー内の関数 orthog を検索します。

which private/orthog
matlabroot\toolbox\matlab\elmat\private\orthog.m  % Private to elmat

MATLAB は toolbox/matlab/elmat/private サブフォルダー内の orthog.m のパスを表示します。

area.m によってどの parseargs が呼び出されるか特定します。

which parseargs in area
% Local function of area
matlabroot\toolbox\matlab\specgraph\area.m (parseargs)  

文字列 str にパスを返す関数構文を使用することもできます。関数形式の which を使用する場合は、すべての入力文字列を単一引用符で囲ってください。

str = which('parseargs','in','area');

例として使用する MAT ファイル 'topography.mat' に対応する matlab.io.MatFile のオブジェクトがあると仮定します。

matObj = matfile('topography.mat');

入力引数 (matObj) を伴って呼び出された場合に起動される関数 who の実装のパスを表示します。

which who(matObj)
% matlab.io.MatFile method
matlabroot\toolbox\matlab\iofun\+matlab\+io\MatFile.m  

結果を文字列に保存します。

str = which('who(matObj)')
str =
matlabroot\toolbox\matlab\iofun\+matlab\+io\MatFile.m

入力引数 (matObj) を指定しない場合、which は、最初に検出された関数またはメソッドのパスのみを返します。

which who
built-in (matlabroot\\toolbox\matlab\general\who)

名前 fopen をもつ MATLAB パス上のすべてのアイテムのパスを表示します。

which fopen -all
built-in (matlabroot\toolbox\matlab\iofun\fopen)
% serial method
matlabroot\toolbox\matlab\iofun\@serial\fopen.m

% icinterface method
matlabroot\toolbox\shared\instrument\@icinterface\fopen.m  
matlabroot\toolbox\instrument\instrument\@i2c\fopen.m      

which の結果を文字列 str に返します。

関数形式の which を使用し、すべての引数をかっこと単一引用符で囲まなければなりません。

str = which('private/stradd','-all');
whos str
  Name      Size            Bytes  Class    Attributes

  str       2x1               650  cell               

入力引数

すべて折りたたむ

検索する関数またはファイル。文字列として指定します。関数形式の which を使用する場合は、すべての入力文字列を単一引用符で囲ってください。item は次のいずれかの形式になります。

入力 item の形式表示するパス
fun

MATLAB 関数、Simulink モデル、ワークスペース変数、読み込まれた Java クラスのメソッド、ファイル拡張子を含むファイル名である fun の絶対パスを表示します。

ファイル拡張子のないファイルのパスを表示するには、「which file.」(ファイル名の後のピリオドは必須) と入力します。関数 exist を使って、ファイルの存在の有無を確かめることができます。

/fun

検索の範囲を検索パス上にある fun という名前の関数に絞り込みます。たとえば、which /myfunction は関数 myfunction.m の絶対パスを表示しますが、同名の組み込み関数や JAVA 関数の絶対パスは表示しません。

private/fun検索範囲を fun という名前のプライベート関数に制限します。たとえば which private/orthog または which('private/orthog') は、親フォルダーの /private サブフォルダー内の orthog.m のパスを表示します。

fun(a1,...,an)

入力引数 a1,...,an を伴って呼び出された場合に起動される関数 fun の実装へのパスを表示します。この構文はオーバーロードされた関数のクエリに使用します。与えられた入力引数で起動する関数の検索の例を参照してください。

検索する関数。文字列として指定します。fun1 は関数の名前で指定することも、fun(a1,...,an) の形式で指定することもできます。形式 fun(a1,...,an) の詳細は、与えられた入力引数で起動する関数の検索を参照してください。

関数形式の which を使用する場合は、which('myfun1','in','myfun2') のようにすべての入力文字列を単一引用符で囲ってください。

呼び出し元のファイル。文字列として指定します。fun2 はファイルの名前で指定することも、fun(a1,...,an) の形式で指定することもできます。形式 fun(a1,...,an) の詳細は、与えられた入力引数で起動する関数の検索を参照してください。

関数形式の which を使用する場合は、which('myfun1','in','myfun2') のようにすべての入力文字列を単一引用符で囲ってください。

出力引数

すべて折りたたむ

文字列、または '-all' を使用した場合は文字列のセル配列として返される関数またはファイルの場所。

  • item がワークスペース変数の場合、str は文字列 'variable' になります。

  • str が文字列のセル配列の場合、str の各行は関数を特定します。これらの関数は、パスの優先順位が低くなっていない限り、優先順位の順に並んでいます。パスの優先順位が低くなっている関数については、str での関数の順序には依存しないでください。関数のパスの優先順位が低くなっているかどうかを確認するには、コマンド構文を使用して which を呼び出します。たとえば、which test -alltest という名前のすべての関数のパスを表示します。パスの優先順位が低くなっている関数には % Shadowed というコメントが付いています。

制限

  • クラスが読み込まれていない場合、which は @ フォルダーの個別のファイル内で定義され、どのパッケージにも含まれていないメソッドのみを検出します。

詳細

すべて折りたたむ

ヒント

  • MATLAB が関数を呼び出すときにスコープと優先度を使用する方法の詳細は、「関数の優先順位」を参照してください。

参考

| | | | | | | | |

R2006a より前に導入

この情報は役に立ちましたか?