Main Content

which

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

説明

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

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

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

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

  • item が Simulink に読み込まれた未保存の Simulink モデルの場合、which は新しい Simulink モデルとして item を識別するメッセージを表示します。

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

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

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

which ___ -all は、MATLAB パス上のすべての項目へのパスを、要求された名前と共に表示します。さらに、暗黙的にパスに追加された特別なフォルダー内の任意のファイルも表示します。このようなアイテムには、インスタンス化されているクラスのメソッドが含まれます。これらの特別なフォルダーの詳細については、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
matlabroot\toolbox\matlab\specgraph\area.m (parseargs)  % Local function of area

str にパスを返す関数構文を使用することもできます。関数形式の which を使用する場合は、すべての入力引数を一重引用符で囲みます。

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

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

matObj = matfile('topography.mat');

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

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

結果を変数 str に保存します。

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

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

private フォルダー内の関数 orthog を検索します。関数形式の which を使用し、すべての引数をかっこと一重引用符で囲まなければなりません。

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

  str       1x1               262  cell               

入力引数

すべて折りたたむ

検索する関数またはファイル。文字ベクトルまたは string スカラーとして指定します。関数形式の which を使用する場合は、すべての item 入力を一重引用符または二重引用符で囲みます。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 の実装へのパスを表示します。この構文はオーバーロードされた関数のクエリに使用します。与えられた入力引数で起動する関数の検索の例を参照してください。

データ型: char | string

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

関数形式の which を使用する場合は、which('myfun1','in','myfun2') のようにすべての fun1 入力を一重引用符または二重引用符で囲みます。

データ型: char | string

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

関数形式の which を使用する場合は、which('myfun1','in','myfun2') のようにすべての fun2 入力を一重引用符または二重引用符で囲みます。

データ型: char | string

出力引数

すべて折りたたむ

関数またはファイルの場所。文字ベクトルまたは '-all' を使用する場合は文字ベクトルの cell 配列として返します。

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

  • str が文字ベクトルの cell 配列の場合、str の各行は which の結果を識別します。結果は、関数の優先順位に従って並べ替えられます。優先順位の低い結果がある場合、str 内にある優先度の低い関数およびメソッドの順序に依存すべきではありません。結果の優先順位が低いかどうかを判別するには、str を指定せずに which を呼び出します。which は優先順位の低い結果をコメント % Shadowed で表します。

制限

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

ヒント

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

拡張機能

バージョン履歴

R2006a より前に導入