MATLAB でのファイルの存在の確認
このチュートリアルでは、MATLAB で exist()
および dir()
関数を使用して、ディレクトリ内のファイルの存在を確認する方法について説明します。
MATLAB で exist()
関数を使用してファイルの存在を確認する
MATLAB の exist()
関数を使用して、ディレクトリ内のファイルの存在を確認できます。 exist()
関数には、いくつかの種類の構文があります。
exist()
関数の最初の構文を以下に示します。
exist file_name
上記のコードでは、file_name
の代わりにファイルまたはフォルダーの名前を渡す必要があります。 フォルダーの場合は、フォルダー名を定義します。 ファイルの場合は、その拡張子を定義する必要があります。
exist()
関数は、ファイルが存在しない場合、または MATLAB が特定のフォルダーへのアクセス許可を持っていない場合、0
を返します。 exist()
関数は、MATLAB が使用する現在のディレクトリとその組み込み関数およびクラス ディレクトリでファイルまたはフォルダーを検索します。
たとえば、MATLAB .m
ファイルを特定のフォルダーに作成した場合、exist()
はそのフォルダー内のファイルと MATLAB の組み込み関数およびクラス ディレクトリのみを検索します。
ファイル名が MATLAB のワークスペース内の変数の名前である場合、exist()
関数は 1
を返します。 .mlx
または .m
の拡張子を持つファイル名が存在する場合、2
を返します。
ファイルが現在のディレクトリ内の MEX ファイルである場合、関数は 3
を返します。 ファイル名が現在のディレクトリにある Simulink モデル ファイルの場合、関数は 4
を返します。
ファイル名が MATLAB の組み込み関数の場合、5
を返します。 ファイル名が現在のディレクトリ内の P コード ファイルである場合、この関数は 6
を返します。
ファイル名がフォルダの場合、7
を返します。 ファイル名が MATLAB のクラスの名前である場合、関数は 8
を返します。
指定されたファイルを優先順に検索し、ファイルが見つかった場合は結果を返し、検索を停止します。 関数の優先順位の詳細については、この リンク を確認してください。
例:
clc
clear
exist Videos
出力:
ans =
7
関数は 7
を返しました。これは、指定されたファイル名が現在のディレクトリ内のフォルダーであることを意味します。
exist()
関数には、以下に示す 2つの構文もあります。
exist file_name searchType
type = exist('file_name')
searchType
は、上記のコードで特定のファイル タイプを検索するためのオプションの引数として使用されます。 組み込み関数のように特定のファイルだけを検索したい場合に便利です。
exist()
関数の 2 番目の構文では、返された値を変数に保存できます。 たとえば、MATLAB の組み込み関数ディレクトリにあるファイル名を確認してみましょう。
clc
clear
exist exist builtin
type = exist('exist','builtin')
出力:
ans =
5
type =
5
上記のコードでは、exist()
関数の 2つの構文を使用し、Matlab の組み込み関数ディレクトリ内で既存のファイル名を検索しました。 既存のファイル名は Matlab の組み込み関数の名前であるため、出力は 5 です。
exist()
関数の詳細については、この リンク を確認してください。
MATLAB で dir()
関数を使用してファイルの存在を確認する
MATLAB の dir()
関数を使用して、ディレクトリ内のファイルの存在を確認できます。 dir()
関数の構文を以下に示します。
dir('file_name')
上記のコードでは、dir()
関数は、指定されたファイル名に関する情報を持つ 5つの変数を含む構造体フィールドを返します。 ファイル名が存在しない場合、5つの変数は空になります。
dir()
関数の出力のサイズを確認して、指定されたファイルが現在のディレクトリに存在するかどうかを確認できます。 たとえば、ファイルが存在する場合、dir()
関数の出力サイズは 1
になり、フォルダー名の場合、サイズは 5
になります。
例:
clc
clear
d = dir('animal.jpg')
s = size(dir('animal.jpg'),1)
出力:
d =
struct with fields:
name: 'animal.jpg'
folder: 'C:\Users\ammar'
date: '09-Mar-2022 13:20:18'
bytes: 48580
isdir: 0
datenum: 7.3859e+05
s =
1
上記のコードでは、ファイルの存在を確認するために d
変数行を使用する必要はありませんが、他のファイルの詳細を確認できます。 上記の出力では、変数 s
は 1
です。これは、ファイルが MATLAB の現在のディレクトリにあることを意味します。
dir()
関数は、MATLAB が使用する現在のディレクトリ内のファイルのみを検索することに注意してください。 フォルダ名を渡すと、size()
関数は、フォルダが見つかった場合は 5
を返し、見つからない場合は 0
を返します。
dir()
関数の詳細については、この リンク を確認してください。