ドキュメンテーション センター

  • 評価版
  • 製品アップデート

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

which

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

構文

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

説明

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

  • item が M または P ファイルの MATLAB® 関数であるか SLX または MDL ファイルの Simulink® モデルである場合、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 で返します。この構文では、前の構文グループの入力引数のいずれかを使用できます。

すべて展開する

MATLAB 関数の検索

関数 pinv を検索します。

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

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

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

str = which('pinv');

読み込まれた Java クラスのメソッドを検索

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

myDate = java.util.Date;

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

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

MATLAB クラスの関数の検索

MATLAB の serial クラス オブジェクト上で使用される関数 fopen を検索します。

which serial/fopen
matlabroot\toolbox\matlab\iofun\@serial\fopen.m  % serial method

MATLAB はクラス フォルダー @serial 内の fopen.m のパスを表示します。

プライベート関数の検索

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
matlabroot\toolbox\matlab\specgraph\area.m (parseargs)  % Subfunction of area

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

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

与えられた入力引数で起動する関数の検索

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

matObj = matfile('topography.mat');

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

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

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

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)
matlabroot\toolbox\matlab\iofun\@serial\fopen.m            % serial method
matlabroot\toolbox\shared\instrument\@icinterface\fopen.m  % icinterface method
matlabroot\toolbox\instrument\instrument\@i2c\fopen.m      % i2c method

パス名を文字列として返す

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

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

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

  str       2x1               650  cell               

入力引数

すべて展開する

item - 検索する関数またはファイル文字列

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

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

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

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

classname/methodMATLAB クラス内のメソッドを定義するファイルの絶対パスを表示します。たとえば which timer/isequal または which('timer/isequal') は、timer クラス内の isequal.m のパスを表示します。
private/fun検索範囲を fun という名前のプライベート関数に制限します。たとえば which private/orthog または which('private/orthog') は、親フォルダーの /private サブフォルダー内の orthog.m のパスを表示します。
classname/private/function検索の範囲を MATLAB クラス classname で定義されるプライベート メソッドに制限します。

fun(a1,...,an)

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

fun1 - 検索する関数文字列

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

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

fun2 - 呼び出し元のファイル文字列

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

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

出力引数

すべて展開する

str - 関数またはファイルの場所文字列 | 文字列のセル配列

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

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

  • str が文字列のセル配列の場合、str の各行は関数を特定し、関数は優先順位の順になります。

制限

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

詳細

すべて展開する

ヒント

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

参考

| | | | | | | | |

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