MATLAB临时添加路径

5
我正在处理一个包含一些子项目的项目。每个子项目都位于自己的文件夹中。
projDir/subProj1
       /subProj2

等等。每个子项目都是一个独立运行的项目。但是现在,我想在subProj2中使用subProj1的一些函数。但是subProj1中的函数通常不应该可见。因此,将subProj1-路径通常添加到MATLAB-Path中并不是一个好主意。因此,我想在存储在subProj2中的.m文件中添加此路径,并在完成此脚本后自动删除该路径。是否有可能临时将路径添加到MATLAB-path变量中?

2个回答

5

addpath函数仅将文件/文件夹添加到Matlab会话的路径中,假设您未调用savepath。如果您想要添加子文件夹,genpath函数也可能会有所帮助。


啊哈,好的谢谢。我以为addpath会永久添加路径。我会尝试一下... - paul_schaefer
@paul_schaefer 我也是这么想的。我甚至写信给Mathworks询问他们是否可以在文档中澄清这一点。或许你也可以这样做? - Dan
好的,这很有效。非常感谢。有趣的是,在文档中他们明确指出,函数内部调用 addpath 是持久的,即使离开了该函数。另一方面,他们建议在启动脚本中使用它来在启动 MATLAB 后修改路径... - paul_schaefer
1
然而,对路径所做的更改,即使没有保存,也可能影响同一会话后面调用的其他函数的执行(正如文档中指出的那样)-这可能是不希望发生的。只在函数范围内进行路径更改将是很好的选择,而无需创建临时本地pathdef文件。 - Jacob Lee

1
你可以使用path(path_to_add,path)将路径添加到当前路径变量中。除非你执行savepath,否则不会影响全局路径。
在你的配置.m脚本中,我会执行path(strcat(pwd,'\subProj1',path)等操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接