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

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

このページは前リリースの情報です。該当の英語のページはこのリリースで更新されています。このリリースの英語のドキュメンテーションを参照するには、言語設定を United States に変更してください。

MATLAB でのファイルの場所の理解

重要な MATLAB フォルダー

ファイルやフォルダーを操作するときは、MATLAB® が使用する主要な場所を覚えておいてください。

現在のフォルダー

"現在のフォルダー" は、MATLAB がファイルを見つけるために使用する基準となる場所です。このフォルダーは"現在のディレクトリ"、"現在の作業フォルダー"、または "現在の作業ディレクトリ" と呼ばれることもあります。オペレーティング システムの現在のフォルダーとは異なる場所にあります。

現在のフォルダーが今 MATLAB の検索パス上にない場合でも、常にその中のファイルを読み込んで、スクリプトや関数を実行できます。現在のフォルダー内の関数は、検索パス上に存在する同じファイル名の関数よりも優先されます。

現在のフォルダーの表示と変更-  以下の表に示すように、さまざまなデスクトップ ツールと関数を使用して、現在のフォルダーを表示および変更できます。MATLAB が起動したときの現在のフォルダーをコマンド ラインから指定する方法は、「MATLAB 起動フォルダー」を参照してください。

目的手順
現在のフォルダーを特定する

次のいずれかを使用します。

  • 現在のフォルダーのツール バー — 絶対パスが表示されていない場合、 をクリックします。

  • pwd または cd 関数

現在のフォルダーを指定のフォルダーに変更する

以下のいずれかを行います。

  • 現在のフォルダー ツール バーで、別のフォルダーを入力するか、別のフォルダーへ移動する。パスの間に表示される矢印をクリックして、ドロップダウン リストからドライブまたはサブフォルダーを選択することもできます。

  • 関数 cd を使用する。

現在のフォルダーを最近使用したフォルダーに変更する

現在のフォルダー ツール バーで下矢印をクリックし、履歴からフォルダーを選択します。

現在のフォルダーをアクティブなドキュメントのフォルダーに変更する

エディターのドキュメントのタブを右クリックして、[現在のフォルダーを <フォルダー> に変更] を選択する。

サブフォルダーを現在のフォルダーにする

現在のフォルダー ブラウザーで、サブフォルダーを右クリックして、[開く] を選択します。

現在のフォルダーを文字列としてコピーする

[現在のフォルダー] のアドレス フィールドの右端にある空白の領域をクリックし、右クリックして [コピー] を選択します。

現在のフォルダー ツール バーを使用してヘルプを表示する

アドレス バーの空白の領域を右クリックして、[アドレス フィールドを使用するヘルプ] を選択します。

関数 matlabroot

matlabroot は、MATLAB のインストール先フォルダーです。MATLAB のインストール場所はさまざまです。関数 matlabroot を実行すると、その場所がわかります。MATLAB を起動すると、現在のフォルダーは matlabroot ですが、実際には別のフォルダーである場合がほとんどです。

起動フォルダー

MATLAB を起動すると常に、現在のフォルダーは同じです。この場所は "起動フォルダー" と呼んでいます。MATLAB を実行するオペレーティング システム コマンドは、スタートアップ フォルダーの場所を指定します。最初の現在のフォルダーが別の場所になるように MATLAB を設定することもできます。詳細は、「MATLAB 起動フォルダー」を参照してください。

MathWorks 製品のファイルの場所

MathWorks® が提供する製品のファイルやフォルダーは、matlabroot/toolbox にあります。matlabroot 下のファイルやフォルダーは、インストールに重要です。以下に例を示します。

  • matlabroot/toolbox 内に個人のファイルやフォルダーを "保存しないでください"

  • matlabroot/toolbox 内のファイル、フォルダー、サブフォルダーなどは "変更しないでください"pathdef.m ファイルは例外です。このファイルは更新して既定の場所 matlabroot/toolbox/local に保存できます。

パフォーマンスを向上させるために、MATLAB は各セッションの始めに matlabroot/toolbox 内のファイルの場所をキャッシュ メモリに読み込みます。matlabroot/toolbox 内のファイルやフォルダーを変更すると、予期しない結果や、ツールボックスのキャッシュに関する警告が生成される可能性があります。「MATLAB のツールボックス パス キャッシュ」を参照してください。

MathWorks 製品のすべてのツールボックスとファイルの一覧を表示するには、次のコマンドを実行します。

dir(fullfile(matlabroot, '/toolbox'))

ユーザー ファイルの保存場所

便宜上、MATLAB には MATLAB というフォルダーが用意されています。起動時に、MATLAB はこのフォルダーを検索パスに入れて、そこにあるファイルに MATLAB がアクセスできるようにします。

userpath MATLABフォルダーの場所は、プラットフォームやシステム設定によって異なります。その場所は、関数 userpath を実行するとわかります。

Microsoft® Windows® プラットフォームでは、セットアップ時に MATLAB の現在のフォルダーが userpath に設定されます。他のプラットフォームでは、現在のフォルダーを userpath に設定するよう、スタートアップ時に MATLAB に異なる命令を出します。詳細は、「MATLAB 起動フォルダー」を参照してください。

MATLAB フォルダー内にサブフォルダーを作成する場合は、新しいサブフォルダーに MATLAB がアクセスできるようにしてください。

MATLAB フォルダー以外の場所にファイルを保存する場合は、以下の点に注意してください。

  • そのフォルダーを検索パスに追加して、MATLAB がアクセスできるようにします。

  • MathWorks 製品のためのフォルダーに保存しないでください。

MATLAB 内のパス名

パス名はファイルの場所を示します。たとえば、C:\work\my_data (Microsoft Windows プラットフォーム)、/usr/work/my_data (Linux®、Apple Mac プラットフォーム) などです。パス名の指定は、MATLAB を実行するプラットフォームによって異なります。ファイルやフォルダーを操作するときは、MATLAB でパス名がどのように使用されるかと、その制限に注意してください。

Apple Mac プラットフォームでのパス名の指定

Mac プラットフォーム上でパス名を指定する場合は、アクセント文字を使用しないでください。パス名にこの種の文字 (たとえばウムラウト記号や曲折アクセント符号) が含まれていると、現在のフォルダー ブラウザーと MATLAB がパスを認識できません。また、そのようなパスにファイルを保存しようとすると、予期しない動作が発生します。

ファイル区切り文字 / と \ の指定

ファイル区切り文字はパス名の中でフォルダー レベルを区切るために使用される記号です。

スラッシュ (/) はどのプラットフォームでも有効な区切り記号です。バックスラッシュまたは半角円記号 (\) は Microsoft Windows プラットフォームでのみ有効です。

フォルダーの絶対パスでは最後のスラッシュを省略できます。

コマンド ウィンドウに "filesep" と入力して、ファイルをプログラミングで操作するときに使用する正しいファイル区切り文字を判別します。

絶対パス名と相対パス名の指定

MATLAB は I:/Documents/My_Files のような "絶対" パス名 ("フル" パス名ともいう) を常に受け入れます。絶対パスは、次のいずれかで始まります。

  • UNC パスの '\\' 文字列

  • C:\ のような Microsoft Windows プラットフォームのドライブ文字

  • Linux プラットフォームの '/' 文字

MATLAB 関数の中には相対パス名を受け入れるものもあります。関数のリファレンス ページには有効なパス名のタイプが定義されています。特に断らない限り、相対パス名は現在のフォルダーに対して相対的です。以下に例を示します。

  • /myfolder は現在のフォルダー内の myfolder フォルダーを指し、myfile.m は現在のフォルダー内の myfile.m ファイルを指します。

  • ../myfolder/myfile.mmyfolder 内の myfile.m を指し、myfolder は現在のフォルダーと同じレベルにあります。先頭で ../ を入力するたびに、1 つ上のフォルダー レベルに移動します。

    ヒント:   エディターに複数のドキュメントが開いてドックされている場合、これらの任意のドキュメントの絶対パスをクリップボードにコピーできます。これは、別の MATLAB ツールまたは外部アプリケーションで絶対パスを指定する必要がある場合に、便利です。ドキュメントのタブを右クリックして、[絶対パスをクリップボードにコピー] を選択します。

ファイル名の大文字と小文字の区別

MATLAB が、ファイル名で大文字と小文字の区別の扱いは、いくつかの要因に依存しています。MATLAB の大文字と小文字の扱いについて不明な場合は、ファイル名を指定する際に、パスと大文字・小文字を正確に指定するのが最良です。以下の節では、一般的な MATLAB の操作に、大文字と小文字がどのように影響するかについて説明します。

関数呼び出し時のファイル名の大文字小文字の区別-   ファイル拡張子なしのファイル名でファイルを指定して関数を呼び出す場合。MATLAB は、MATLAB 検索パスで、大文字小文字を区別する検索でマッチしなかった場合には、大文字小文字を区別せずにマッチさせたいものと仮定します (MATLAB が実行しているオペレーティングシステムに無関係です)。

さらに、同じファイル名で、拡張子の異なるファイルが同じフォルダーに存在する場合は、MATLAB は、次の優先順位でフォルダー内のファイルを検索します。

  • MEX ファイル

  • MDL (Simulink® モデル) ファイル

  • P コード ファイル

  • MATLAB コード ファイル (拡張子 .m)

優先順位の詳細は、「関数の優先順位」を参照してください。

この例では、myfile.m が検索パスにあり、MYFILE.M は存在しないものと仮定します。MATLAB コマンド プロンプトで MYFILE と入力した場合は、MATLAB は myfile.m を実行しますが、大文字小文字が一致しなかったことを警告し、将来のリリースではこの警告はエラーとなることを説明します。

myfile (a MEX-file)MYFILE.m が同じ検索パスに存在する場合に、コマンド プロンプトで MYFILE を入力すると、myfile が検索パスの上位にある場合でも、MATLAB は MYFILE.M を実行します。

MATLAB がどのファイルを使用するかを、ファイルを実行せずに知るには、which—all オプションで使用します。例: which myfile.m —all

MAT ファイル読み込み時のファイル名の大文字小文字の区別-  load を呼び出す際に、拡張子なしでファイル名を指定した場合は、MATLAB は MAT ファイルを検索します。MATLAB が実行されるオペレーティング システムに依存する大文字小文字の区別は、以下のとおりです。

  • Linux

    MYFILE を読み込む際に、MYFILE.MAT が、MATLAB 検索パスのどこかにあれば、MATLAB は MYFILE.MAT を読み込みます。これは、MATLAB 検索パス上で MYFILE.MAT より上位の場所に、myfile.mat および myfile.m が存在する場合でも同じです。

    MYFILE を読み込む際に、MYFILE.MAT が、MATLAB 検索パスにない場合は、MATLAB は Unable to read file MYFILE.MAT: No such file or directory というメッセージを表示します。これは、MATLAB 検索パス上に myfile.mat が存在する場合でも同じです。

  • Windows

    MYFILE を読み込む際に、myfile.mat が検索パス上で MYFILE.MAT よりも上位にある場合、MATLAB は、大文字小文字のミスマッチがあることを警告せずに myfile.mat を読み込みます。

MAT ファイル保存時のファイル名の大文字小文字の区別-  save を呼び出し、MAT ファイルを拡張子なしで指定した場合は、MATLAB はファイルを現在のフォルダーに保存します。MATLAB が実行されるオペレーティング システムに依存する大文字小文字の区別は、以下のとおりです。

  • Linux

    MATLAB は、指定されたとおりに大文字小文字を使用して保存します。同じファイル名で、大文字小文字が異なる 2 つのファイルが、同じフォルダーに存在することができます。

  • Windows

    Windows オペレーティング システムでは、同一のファイル名で大文字小文字が異なる 2 つのファイルを (大文字小文字に関わらず) 同一のファイルと見なすため、同じフォルダに同じ名前のファイルを 2 つ保存することはできません。save MYFILE を実行する際に、myfile.mat が現在のフォルダーに存在する場合は、MYFILE.MATmyfile.mat を警告なしに置き換えます。save myfile を実行する際に、MYFILE.mat が現在のフォルダーに存在する場合は、myfile.mat の内容が MYFILE.mat の内容を置き換えますが、ファイル名は MYFILE.mat のままになります。

MATLAB でのパス名の長さの制限

可能な最長パス名はプラットフォームに依存します。

たとえば、Microsoft Windows プラットフォームでは以下のようになります。

  • 最長パス名は MAX_PATH として知られています。

  • 260 字を超える絶対パス名は使用できません。

  • 相対パス名の場合は、260 文字未満にしなければならない場合があります。Windows オペレーティング システムが相対パスを処理する場合は、これより長い絶対パスを生成でき、最大長を超える可能性があります。

長いパス名を使用していて予期しない結果が出た場合、相対パス名ではなく絶対パス名を使用してください。フォルダーやファイルに短い名前を付けると方法もあります。

異なるプラットフォームでのパス名の構成

どのプラットフォームでも機能するパス名を構成するには、関数 fullfile を使用します。この関数は、コードを異なるプラットフォームで使用する人に提供する場合に特に便利です。関数 ismacispcisunix は、現在使用しているプラットフォームを識別します。

パス名に含めるスペース

関数の引数がファイルまたはパス名で、その名前の中にスペースが含まれている場合、関数の構文を使用します。以下に例を示します。

load('filename with space.mat') 

コマンド構文はスペースが含まれているファイル名には機能しません。以下に例を示します。

load filename with space.mat  
% Command syntax does NOT work for a file name containing a space

MATLAB 内の部分パス名

部分パス名は、MATLAB 検索パス上の場所を示す絶対パスの後半です。

関数の中には部分パス名を受け入れるものがあります。関数のリファレンス ページには有効なパス名のタイプが定義されています。

有効な部分パス名の例: matfun/traceprivate/canceldemos/clown.mat

部分パス名の用途

  • 絶対パス名より簡便な方法で場所を指定する。

  • MATLAB のインストール場所に左右されない方法で場所を指定する。

  • 複数のツールボックスにその名前の関数が含まれている場合に、特定のツールボックス内の関数を見つける。たとえば、Database Toolbox™ 製品の関数 set のヘルプを表示する場合は、次のように入力します。

    help database/set
  • メソッド ファイルの検索。たとえば、時系列オブジェクトのメソッド plot のヘルプを表示する場合は、次のように入力します。

    help timeseries/plot

    メソッド フォルダー名の中で @ を指定するのは、オプションです。

  • 隠しファイルになっている可能性のある個人ファイルやメソッド ファイルの場所を指定する場合。

部分パス名が一意になるまで十分なパス名を指定します。

参考

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