我正在开发我自己的在 MATLAB 和 SPM8 下运行的脑成像工具箱,同时我有一个我自己的工具箱代码目录(本地 git 存储库)的 git clone
版本对于运行分析,此设置是根据 Kevin Reid 在 How to work simultaneously on several different versions of files with git? 上的回答创建的,这解决了部分问题(如何同时访问同一 .m
文件的不同版本,并且仍然可以通过使用 git fetch
或 进行同步git pull
).
但是,我的 MATLAB 安装不在这两个 git 目录中;它通常安装在 /usr/local/MATLAB/R2012a/
中。 MATLAB 根据pathdef.m
查找函数,它存储在which pathdef
(/usr/local/MATLAB/R2012a/toolbox/local/pathdef.m
) 作为常规函数。所以我不能让两个 MATLAB 实例同时运行,这样它们就有不同的 pathdef
,至少不能通过修改 pathdef.m
文件来实现。
当然,MATLAB 必须事先知道在哪里寻找 pathdef.m
来定义路径。有没有办法改变 pathdef.m
查找路径,例如。通过一些 MATLAB 命令行参数或从 MATLAB 控制台?或者通过其他方式,以便我可以同时运行两个具有不同 pathdef
的 MATLAB 实例?或者我应该在两个不同的目录中安装 MATLAB?我对这个问题的各种解决方案都很感兴趣。
最佳答案
让我提供另一种方法。它涉及创建 shortcuts在 MATLAB IDE 中。
只需创建两个快捷方式,每个快捷方式包括如下内容:
addpath(genpath('/path/to/project_branch')) %// add branch (and subfolders) to MATLAB path
cd('/path/to/project_branch') %// navigate to directory
(说明:调用 addpath
不会在系统范围内保存更改,但只会在当前 session 中持续存在,除非您调用 savepath
)
现在,无论何时开始新的 MATLAB session ,并决定在一个或另一个分支上工作,只需单击相应的快捷方式并开始破解...
更好的是,如果您将一个分支视为stable,将另一个分支视为dev,则可以将稳定的分支永久添加到路径中,并有选择地添加开发版本在路径的顶部 addpath('...','-begin')
使用快捷方式,从而仅 stash 当前 session 的另一个分支。
关于git - 如何使用不同的 pathdef 同时运行两个 MATLAB 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10903487/