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

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

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

exist

変数、関数、フォルダー、またはクラスの存在をチェック

構文

exist name
exist name kind
A = exist('name','kind')

説明

exist name は、name のステータスを以下のように返します。

0

name は存在しません。

1

name はワークスペースの変数です。

2

以下のいずれかが当てはまる。

  • name が、ファイル拡張子 .m として、MATLAB® 検索パス上に存在する。

  • name が、MATLAB 検索パス上の通常ファイルの名前である。

  • name が、ファイルの絶対パス名である。

3

name は MATLAB 検索パス上に MEX ファイルとして存在します。

4

name は、MATLAB 検索パス上の Simulink® モデルまたはライブラリ ファイルとして存在します。

5

name は、組み込み MATLAB 関数です。

6

name は、MATLAB 検索パス上の P ファイルです。

7

name は、フォルダーです。

8

name は、クラスです (-nojvm オプションを使用して MATLAB を起動した場合、関数 exist は Java クラスに 0 を返します)。

name がクラスの場合、exist('name')8 を返します。ただし、name がクラス ファイルの場合、exist('name')2 を返します。

ファイルまたはフォルダーが検索パス上にない場合、name は、絶対パス名、MATLABPATH に相対的な「部分パス名」、現在のフォルダーに相対的な部分パス名のいずれかを指定しなければなりません。これ以外の場合、ファイルまたはフォルダーは、現在の作業用フォルダー内になければなりません。

name がファイル名の場合、ファイル名は、他の同様なファイル名との混乱を避けるために拡張子を付けます。たとえば、exist('file.ext') です。

exist name kind は、指定された kind に対する name のステータスを返します。タイプ kindname が存在しない場合、0 が返されます。kind 引数は、以下のいずれかになります。

builtin

組み込み関数のみチェック

class

クラスのみのチェック

dir

フォルダーのみチェック

file

ファイルまたはフォルダーのみチェック

var

変数のみのチェック

name が複数のカテゴリに属する場合、kind 引数を指定しないと、exist は、以下の表に示す評価順に従い値を 1 つ返します。たとえば、name が MATLAB 関数を定義するフォルダーとファイルの両方と一致する場合、関数 exist は、フォルダーであることを示す 7 を返します。

評価順

戻り値

エンティティのタイプ

1

1

変数

2

5

組み込み

3

7

フォルダー

4

3

MEX ファイル

5

4

SLX または MDL ファイル

6

6

P ファイル

7

2

MATLAB 関数

8

8

クラス

A = exist('name','kind') は、この構文の関数型です。

この例は、関数 exist を使用して、MATLAB 関数が組み込み関数かファイルかをチェックします。

type = exist('plot')
type =
     5

これは、関数 plot が組み込み関数であることを示しています。

関数 exist をクラス フォルダーに対して実行し、次にそのフォルダー内のコンストラクターに対して実行します。

exist('@portfolio')
ans =
     7               % @portfolio is a folder

exist('@portfolio\portfolio')
ans =
     2               % portfolio is a MATLAB  function

以下の例は、testresults が、ワークスペースの変数であり、検索パス上のフォルダーでもあることを示しています。

exist('testresults','var')
ans =
     1
exist('testresults','dir')
ans =
     7

詳細

すべて展開する

ヒント

name がファイル名を指定する場合、MATLAB は、ファイルを検出し、ファイル名拡張子を検証して、拡張子のみに基づいて返される値を決定します。MATLAB は、ファイルの内容やファイルの内部構造を調べません。

フォルダーまたはファイルの部分パスを指定できます。部分パス名は、絶対パス名の後続の 1 つまたは複数コンポーネントのみを含む、MATLAB パスに相対的なパス名です。たとえば、以下のコマンドは、いずれも 2 を返し、mkdir.m が MATLAB 関数であることを示します。最初のコマンドは、部分パス名を使用します。

exist('matlab/general/mkdir.m')
exist([matlabroot '/toolbox/matlab/general/mkdir.m'])

複数の変数の存在をチェックするには、関数 ismember を使用します。たとえば、

a = 5.83;
c = 'teststring';
ismember({'a','b','c'},who)

ans =

     1     0     1

参考

| | | | | | | | | | | |

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