Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何使用不同的pathdef';s_Git_Path_Git Clone_Matlab - Fatal编程技术网

Git 如何使用不同的pathdef';s

Git 如何使用不同的pathdef';s,git,path,git-clone,matlab,Git,Path,Git Clone,Matlab,我正在开发自己的大脑成像工具箱,该工具箱在MATLAB和SPM8下运行,同时我有一个git clone'd版本的工具箱代码目录(本地git存储库)用于运行分析,该设置是根据Kevin Reid在上的回答创建的,解决了部分问题(如何同时访问同一.m文件的不同版本,并且仍然可以使用git fetch或git pull进行同步) 但是,我的MATLAB安装不在这两个git目录中;它通常安装在/usr/local/MATLAB/R2012a/中。MATLAB根据pathdef.m查找函数,该函数存储在哪

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

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


当然,MATLAB必须事先知道在何处查找
pathdef.m
以定义路径。是否有方法更改
pathdef.m
查找路径,例如通过一些MATLAB命令行参数或从MATLAB控制台?或通过其他方式,以便我可以使用不同的
pathdef?还是应该将MATLAB安装在两个不同的目录中?我对这个问题的各种解决方案都感兴趣。

是的,有。在启动MATLAB之前设置环境变量MATLABPATH(从终端)


让我提供另一种方法,它涉及在MatlabIDE中创建

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

addpath(genpath('/path/to/project_branch'))   %// add branch (and subfolders) to MATLAB path
cd('/path/to/project_branch')                 %// navigate to directory
(说明:对的调用不会在系统范围内保存更改,但仅在当前会话中保持不变,除非您调用)

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

更好的是,如果您认为一个分支是稳定的,另一个是DEV,则可以永久地将稳定的一个添加到路径中,并使用快捷方式选择性地将开发版本添加到路径<代码> ADDPATH(“……”、“开始”)< /代码>中,从而仅遮蔽当前分支的另一个分支。


Gunther的答案也很有用,但这一个允许在运行中轻松更改路径,而无需重新启动新的MATLAB实例。这两种解决方案都有各自的优点。我还建议使用
addpath
cd
,但是如果要使用多个路径,您可能需要创建一个简单的
changepath('projectbranch')
函数,而不是每个分支的一个按钮,以限制快捷方式的数量。这是否为以后的所有matlab会话保留此设置(除非手动清理)?环境变量
MATLABPATH
仅在其启动的会话处于活动状态时才存在。当然,您可以将此命令添加到
.bashrc
.profile
文件中,因此它会在每个新会话中启动。也可以在
matlabrc.m
中设置
MATLABPATH
,不要这样做当然。如果你想改变这一点,我会调查的
addpath(genpath('/path/to/project_branch'))   %// add branch (and subfolders) to MATLAB path
cd('/path/to/project_branch')                 %// navigate to directory