【问题标题】:How to run two MATLAB instances simultaneously with different pathdef's?如何使用不同的 pathdef 同时运行两个 MATLAB 实例?
【发布时间】:2012-06-05 19:16:58
【问题描述】:

我正在开发自己的在 MATLAB 和 SPM8 下运行的大脑成像工具箱,同时我有一个 git clone'd 版本的我自己的工具箱代码目录(本地 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.m) 中。所以我不能同时运行两个 MATLAB 实例,因此它们具有不同的 pathdef,至少不能通过修改 pathdef.m 文件。

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

【问题讨论】:

    标签: git path git-clone matlab


    【解决方案1】:

    让我提供一种替代方法。它涉及在 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') 的顶部,从而仅为当前会话隐藏另一个分支。

    【讨论】:

    • Gunther 的答案也很有用,但这个答案允许轻松更改路径,而无需重新启动新的 MATLAB 实例。这两种解决方案各有千秋。
    • 我也推荐使用addpathcd,但是如果你有多个路径可以使用,你可能想要创建一个简单的changepath('projectbranch')函数而不是每个分支的按钮来保持快捷方式的数量有限。
    【解决方案2】:

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

    export MATLABPATH=/yourdir
    

    【讨论】:

    • 这是否会让您在以后的所有 matlab 会话中使用此设置(除非您手动清理)?
    • 环境变量MATLABPATH 仅在它启动的会话处于活动状态时才存在。当然,您可以将此命令添加到您的.bashrc.profile 文件中,因此它会在每次新会话时启动。也可以在matlabrc.m 中设置MATLABPATH,不确定。如果您只是想改变它,我会调查一下
    猜你喜欢
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 2022-11-14
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多