如何使用不同的pathdef同时运行两个MATLAB实例?

时间:2012-06-05 19:16:58

标签: git path git-clone matlab

我正在开发自己的脑成像工具箱,该工具箱在MATLAB& SPM8,同时我有一个git clone版本的我自己的工具箱代码目录(本地git存储库)用于运行分析,这个设置是根据Kevin Reid在How to work simultaneously on several different versions of files with git?上的答案创建的,解决了部分问题(如何同时访问同一.m个文件的不同版本,并且仍然可以使用git fetchgit pull进行同步。

但是,我的MATLAB安装都不在这些git目录中;它通常安装在/usr/local/MATLAB/R2012a/中。 MATLAB根据pathdef.m查找函数,which pathdef作为常规函数存储在/usr/local/MATLAB/R2012a/toolbox/local/pathdef.mpathdef)中。所以我不能同时运行两个MATLAB实例,因此它们有不同的pathdef.m,至少不能修改pathdef.m文件。

当然,MATLAB必须事先知道在哪里寻找pathdef.m来定义路径。有没有办法改变pathdef查找路径,例如。通过一些MATLAB命令行参数或从MATLAB控制台?或者通过其他方式,以便我可以有两个MATLAB实例同时运行不同的{{1}}?或者我应该在两个不同的目录中安装MATLAB?我对这个问题的各种解决方案感兴趣。

2 个答案:

答案 0 :(得分:4)

让我提供另一种方法。它涉及在MATLAB IDE中创建shortcuts

只需创建两个快捷方式,每个快捷方式包括:

addpath(genpath('/path/to/project_branch'))   %// add branch (and subfolders) to MATLAB path
cd('/path/to/project_branch')                 %// navigate to directory

(说明:对addpath的调用不会保存系统范围内的更改,但只会在当前会话中保留,除非您调用savepath

现在每当你开始一个新的MATLAB会话,并决定在一个或另一个分支上工作时,只需单击相应的快捷方式并开始黑客攻击......

更好的是,如果您将一个分支视为 stable 而将另一个分支视为 dev ,则可以将稳定的分支永久添加到路径中,并有选择地添加开发版本在路径addpath('...','-begin')的顶部使用快捷方式,从而仅为当前会话遮蔽另一个分支。

screenshot

答案 1 :(得分:3)

是的,有。在启动matlab(从终端)

之前设置环境变量MATLABPATH
export MATLABPATH=/yourdir