我在加载大量项目数据的地方编写代码。我想将我的路径名保留在相对于磁盘上该项目的某些位置的代码中,即未对其进行配置或硬编码。
Matlab中是否有功能可以执行以下操作?
在python中,我会这样写:
ROOT = os.path.dirname(__file__)
Run Code Online (Sandbox Code Playgroud)
最好的方法是fileparts与mfilename('fullpath')。(所有示例均假定包含这些语句的正在执行的m文件位于中/home/suever/code/stackoverflow.m)
mfiledir = fileparts(mfilename('fullpath'));
/home/suever/code
Run Code Online (Sandbox Code Playgroud)
那你可以用 fullfile用来构建所需的任何路径。现在,如果您有一个文件(data.mat)存储在同一目录中:
filename = fullfile(mfiledir, 'data.mat');
/home/suever/code/data.mat
Run Code Online (Sandbox Code Playgroud)
如果文件实际上在父目录中。
filename = fullfile(mfiledir, '..', 'data.mat');
/home/suever/data.mat
Run Code Online (Sandbox Code Playgroud)
如果只需要一个m文件所在的父目录,则可以申请fileparts两次,并且仅保留第二个输出。
[~, reldir] = fileparts(fileparts(mfilename('fullpath')));
code
Run Code Online (Sandbox Code Playgroud)
我建议在第一个示例中使用完整路径,因为它们完全独立于用户当前的工作目录。
| 归档时间: |
|
| 查看次数: |
1035 次 |
| 最近记录: |