3

我正在开发自己的在 MATLAB 和 SPM8 下运行的大脑成像工具箱,同时我有一个git clone用于运行分析的我自己的工具箱代码目录(本地 git 存储库)的 d 版本,此设置是根据 Kevin Reid 的回答如何使用 git 同时处理多个不同版本的文件?,它解决了部分问题(如何同时.m访问同一文件的不同版本,并且仍然可以使用git fetchor进行同步git pull)。

但是,我的 MATLAB 安装不在这两个 git 目录中;它正常安装在/usr/local/MATLAB/R2012a/. MATLAB 根据 查找函数,该函数作为常规函数pathdef.m存储在which pathdef( ) 中。/usr/local/MATLAB/R2012a/toolbox/local/pathdef.m所以我不能同时运行两个 MATLAB 实例,这样它们就有不同pathdef的 's,至少不是通过修改pathdef.mfile.

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

4

2 回答 2

4

让我提供一种替代方法。它涉及在 MATLAB IDE 中创建快捷方式。

只需创建两个快捷方式,每个快捷方式都包括以下内容:

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

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

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

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

截屏

于 2012-06-05T20:08:47.987 回答
3

就在这里。在启动 matlab 之前设置环境变量 MATLABPATH(从终端)

export MATLABPATH=/yourdir
于 2012-06-05T19:21:35.807 回答