我有一个matlab脚本,希望load
.mat
文件位于相对于脚本位置的目录中。脚本本身可能位于相对于当前工作目录的不同位置,因此.mat
文件的位置相对于它是未知的。如何指定要相对于正在执行的脚本加载的文件的位置?
答案 0 :(得分:4)
函数mfilename
返回当前正在运行的脚本的名称。但是,这不会返回脚本的完整路径。您可能想要这样,因此您可以指定'fullpath'
选项以返回实际脚本本身的完整路径,包括脚本的名称。
您只需要文件所在的实际目录,因此首先使用mfilename
获取实际文件的完整路径,然后使用fileparts
实际提取实际目录的位置文件是。 fileparts
返回文件所在的目录,文件名本身和扩展名。您只需要第一个输出参数,而不关心其他输出。完成后,您可以使用实际目录,然后将此字符串附加到.mat
文件的位置:
p = mfilename('fullpath');
[pathstr,~,~] = fileparts(p);
d = fullfile(pathstr, 'path', 'to', 'your', 'file.mat');
fullfile
构建一个独立于操作系统的目录字符串,因此对于要指示转到.mat
文件的每个子目录,请将它们作为单独的输入字符串放置,直到找到所需的文件为止。 d
将包含.mat
文件相对于当前正在运行的脚本的完整路径,然后您可以相应地将其用于load
。