gpt4 book ai didi

MATLAB - 获取当前路径,然后使用它导航到不同的文件夹

转载 作者:行者123 更新时间:2023-12-02 08:11:08 26 4
gpt4 key购买 nike

我的本​​地计算机上当前存储着一堆代码。有两个文件夹,一个名为“Resources”,另一个名为“src”。 “src”中有一个名为“main.m”的主脚本需要运行,它调用“资源”中的文件。

如果我将整个内容复制到新计算机上,路径将会改变,并且 MATLAB 可能无法再找到“资源”。我知道相对于“main.m”,我需要上升一级,然后进入“资源”。

让 MATLAB 指向“资源”的最佳方法是什么?

我目前正在尝试

P = mfilename('fullpath') 

给出了 main.m 的路径。现在,我想从这里导航到上一个文件夹,然后进入“资源”。或者如果有更好的方法,请告诉我。

最终,我想将其扩展为适用于多个文件夹“Resources1”、“Resources2”等,因此 MATLAB 需要能够导航到正确的文件夹。

最佳答案

你可以这样得到它:

fullfile(fileparts(mfilename('fullpath')), '..', 'Resources');

说明:

  • mfilename('fullpath') 将返回文件的完整路径和名称发生调用的 M 文件,不带扩展名
  • fileparts 将返回传递的文件的路径(仅包含目录)
  • fullfile 将从传递的文件夹名称构建完整的目录规范(注意:'..' 始终表示父目录)

基于此,编写一个获取包含该文件的目录的同级目录的函数非常简单:

getSiblingOfParentDirectory.m

function siblingDirPath = getSiblingOfParentDirectory(filepath, siblingDirName)
siblingDirPath = fullfile(fileparts(filepath), '..', siblingDirName);
end

然后在 M 文件中使用它:

for i = 1:3
disp(getSiblingOfParentDirectory(mfilename('fullpath'), ['Resources', num2str(i)]));
end

示例输出:

D:\pathtest\Resources1
D:\pathtest\Resources2
D:\pathtest\Resources3

关于MATLAB - 获取当前路径,然后使用它导航到不同的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39994768/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com