2016-04-08 9 views
2

load のファイルが、のディレクトリに固定されたディレクトリにあるのMATLABスクリプトを持っています。スクリプト自体は現在の作業ディレクトリとは別の場所にある可能性がありますので、.matファイルの場所は相対的にわかりません。実行しているスクリプトに対して、ロードするファイルの場所を指定するにはどうすればよいですか?スクリプトのパスにあるMatlabロードファイル

答えて

4

mfilenameは、現在実行中ののの名前を返します。ただし、これはスクリプトへのフルパスを返しません。おそらくこれが必要なので、'fullpath'オプションを指定すると、スクリプトの名前を含め、実際のスクリプト自体に完全なパスを返すことができます。

ファイルの場所の実際のディレクトリがほしいので、最初にmfilenameを使用して実際のファイルへの完全なパスを取得してから、filepartsを使用して、ファイルの実際のディレクトリを実際に抽出します。 filepartsは、ファイルの場所のディレクトリ、ファイル名自体、および拡張子を返します。あなたは最初の出力引数を必要とし、他の出力については気にしません。各サブディレクトリのためにあなたがに指示したいので、

p = mfilename('fullpath'); 
[pathstr,~,~] = fileparts(p); 
d = fullfile(pathstr, 'path', 'to', 'your', 'file.mat'); 

fullfileはOSに依存しないディレクトリ文字列を作成します:あなたがこれをしたら、あなたは、あなたの.matファイルの場所で、この文字列を追加し、その後、実際のディレクトリを使用することができます.matファイルにアクセスし、必要なファイルが見つかるまで別の入力文字列として入力します。 dには、現在実行中のスクリプトとの相対的なファイル.matの完全なパスが含まれており、それに応じてloadに使用できます。

関連する問題