ファイル名の指定
有効なパスおよびファイル名の構築
パス名の指定
パス名は、たとえば、C:\work\my_data
(Microsoft® Windows® プラットフォーム) や /usr/work/my_data
(Linux® または Mac プラットフォーム) などのように、ファイルの場所を指定します。ファイルにアクセスする際にパス名を指定しない場合、MATLAB® はまず現在のフォルダーを検索します。特定の場所にあるファイルを示すには、パス名を指定します。
パス名の指定は、MATLAB を実行するプラットフォームによって異なります。どのプラットフォームでも機能するパス名を構成するには、関数 fullfile
を使用します。この関数は、コードを異なるプラットフォームで使用する人に提供する場合に特に便利です。
fullfile
は、プラットフォーム固有のファイル区切りが必要な場合はそれを挿入します。ファイル区切り文字はパス名の中でフォルダー レベルを区切るために使用される記号です。スラッシュ (/) はどのプラットフォームでも有効な区切り記号です。バックスラッシュまたは半角円記号 (\) は Microsoft Windows プラットフォームでのみ有効です。フォルダーの絶対パスでは最後のスラッシュを省略できます。コマンド ウィンドウに filesep
と入力して、ご利用のプラットフォームで使用する正しいファイル区切り記号を判断します。
MATLAB が現在稼働しているプラットフォームを特定するには、関数 ismac
、ispc
および isunix
を使用します。
ファイル名およびフォルダー名の文字
ファイル名は文字で始まらなければならず、文字、数字、アンダースコアの組み合わせを使用できます。
パス名にはウムラウト記号や曲折アクセント符号などのアクセント文字を使用しないでください。MATLAB でパスを認識できなくなる可能性があります。また、そのようなパスにファイルを保存しようとすると、予期しない動作が発生する場合があります。
パス名またはファイル名に空白が含まれる場合は、入力を一重引用符で囲んでください。たとえば、次のようにします。
load 'filename with space.mat'
load('filename with space.mat')
絶対パス名と相対パス名
MATLAB は I:/Documents/My_Files
や /users/myuserid/Homework/myfile.m
のような "絶対" パス名 ("フル" パス名ともいう) を常に受け入れます。絶対パスは、次のいずれかで始まります。
UNC パス
'\\'
C:\
のような Microsoft Windows プラットフォームのドライブ文字Linux プラットフォームの
'/'
文字
MATLAB 関数の中には相対パス名を受け入れるものもあります。特に断らない限り、相対パス名は現在のフォルダーに対して相対的です。たとえば、以下のようになります。
myfile.m
は、現在のフォルダーにあるmyfile.m
ファイルを指します。myfolder
は、現在のフォルダーにあるmyfolder
フォルダーを指します。../myfolder/myfile.m
はmyfolder
内のmyfile.m
を指し、myfolder
は現在のフォルダーと同じレベルにあります。パスの先頭にある../
の数だけフォルダー レベルが上がります。
ヒント
エディターに複数のドキュメントが開いてドックされている場合、これらの任意のドキュメントの絶対パスをクリップボードにコピーできます。これは、別の MATLAB ツールまたは外部アプリケーションで絶対パスを指定する必要がある場合に便利です。ドキュメントのタブを右クリックして、[絶対パスをクリップボードにコピー] を選択します。
MATLAB 内の部分パス名
部分パス名は、MATLAB 検索パス上の場所を示す絶対パスの後半です。関数の中には部分パス名を受け入れるものがあります。
有効な部分パス名の例: matfun/trace
、private/cancel
、demos/clown.mat
部分パス名の用途
MATLAB のインストール場所に左右されない方法で場所を指定する。
複数のツールボックスにその名前の関数が含まれている場合に、特定のツールボックス内の関数を見つける。たとえば、Database Toolbox™ 製品の関数
set
のファイルを開く場合は、次のように入力します。open database/set
メソッド ファイルの検索。たとえば、時系列オブジェクトにメソッド
plot
が存在するかどうかを調べるには、次のように入力します。exist timeseries/plot
メソッド フォルダー名の中で
@
を指定するのは、オプションです。隠しファイルになっている可能性のある個人ファイルやメソッド ファイルの場所を指定する場合。
部分パス名が一意になるまで十分なパス名を指定します。
MATLAB でのパス名の長さの制限
可能な最長パス名はプラットフォームに依存します。
たとえば、Microsoft Windows プラットフォームでは以下のようになります。
最長パス名は
MAX_PATH
として知られています。260 字を超える絶対パス名は使用できません。
相対パス名の場合は、260 文字未満にしなければならない場合があります。Windows オペレーティング システムが相対パスを処理する場合は、これより長い絶対パスを生成でき、最大長を超える可能性があります。
長いパス名を使用していて予期しない結果が出た場合、相対パス名ではなく絶対パス名を使用してください。フォルダーやファイルに短い名前を付けると方法もあります。
ファイル名の大文字と小文字の区別
一般的には、ファイル名を指定する際に、パスを指定して大文字小文字を正確に区別するのが最善です。
関数呼び出し時の大文字小文字の区別
関数ファイルは、ファイル拡張子なしでファイル名を指定して呼び出せます。MATLAB は、検索パスに大文字小文字を区別して一致するものが見つからないと、エラーを返します。既定では、MATLAB は正しく大文字小文字を区別して関数を提示します。
同じ名前のファイルが複数存在する場合、MATLAB は優先順位ルールに従ってどれを呼び出すかを決定します。詳細は、関数の優先順位を参照してください。
ファイルを読み込みおよび保存する際の大文字小文字の区別
Linux プラットフォーム — ファイル名の大文字小文字は区別されます。
ファイルを読み込む場合またはファイルから読み取る場合、大文字小文字を正しく区別してファイル名を指定します。
ファイルを保存する場合またはファイルに書き込む場合、MATLAB はユーザーの指定どおりに大文字小文字を区別してファイルを保存します。同じファイル名で、大文字小文字が異なる 2 つのファイルが、同じフォルダーに存在することができます。
Windows プラットフォーム — ファイル名の大文字小文字は区別されません。Windows オペレーティング システムは、大文字小文字を区別せず、同じ名前のファイルが 2 つあると、それらを同一のファイルと認識します。そのため、同じフォルダーに大文字小文字のみ異なる 2 つのファイルが存在することはできません。
ファイルを読み込む場合またはファイルから読み取る場合、MATLAB は、大文字小文字の区別に関係なく、検索パス上で上位にある指定された名前のファイルにアクセスします。たとえば、
MYFILE
を読み込もうとしたときに、myfile.mat
が検索パス上でMYFILE.MAT
よりも上位にある場合、MATLAB は、大文字小文字のミスマッチがあることを警告せずにmyfile.mat
を読み込みます。ファイルを保存したり、ファイルに書き込む場合、フォルダーに既に存在するファイル名を指定すると、MATLAB は警告せずにそのファイルにアクセスします。たとえば、関数
save
を使用してmyfile
という名前のファイルにデータを保存する場合、フォルダーにMYFILE.mat
が既に存在していると、そのデータはMYFILE.mat
の内容を置き換えてしまいます。ただし、ファイル名はMYFILE.mat
のままです。
参考
filesep
| fullfile
| which
| ismac
| ispc
| isunix