ドキュメンテーション

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

exist

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

構文

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

説明

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

0

name は存在しません。

1

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

2

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

  • name が、拡張子 .m または .mlx をもつファイルとして 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

6

P ファイル

6

2

MATLAB 関数

7

4

SLX または MDL ファイル

8

8

クラス

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

すべて折りたたむ

testresults という名前の変数を作成し、ワークスペース内でその存在を確認します。

testresults = magic(5);
exist testresults var
ans =

     1

testresults という名前の変数がワークスペース内に存在します。

関数 plot が組み込み関数であるかファイルであるかを確認します。

A = exist('plot')
A =

     5

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

詳細

すべて折りたたむ

ヒント

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

R2006a より前に導入

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