我正在开发自己的脑成像工具箱,该工具箱在MATLAB& SPM8,同时我有一个git clone
版本的我自己的工具箱代码目录(本地git存储库)用于运行分析,这个设置是根据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
(pathdef
)中。所以我不能同时运行两个MATLAB实例,因此它们有不同的pathdef.m
,至少不能修改pathdef.m
文件。
当然,MATLAB必须事先知道在哪里寻找pathdef.m
来定义路径。有没有办法改变pathdef
查找路径,例如。通过一些MATLAB命令行参数或从MATLAB控制台?或者通过其他方式,以便我可以有两个MATLAB实例同时运行不同的{{1}}?或者我应该在两个不同的目录中安装MATLAB?我对这个问题的各种解决方案感兴趣。
答案 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')
的顶部使用快捷方式,从而仅为当前会话遮蔽另一个分支。
答案 1 :(得分:3)
export MATLABPATH=/yourdir