2012-06-05 133 views
3

我開發,根據MATLAB & SPM8運行我自己的大腦成像工具箱,並在同一時間,我有運行分析我自己的工具箱代碼目錄(本地git倉庫)的git clone「d版本,這個設置是根據創建凱文·裏德對How to work simultaneously on several different versions of files with git?答案,解決問題的一部分(如何有不同版本的同一.m文件進行訪問的同時,利用git fetchgit pull仍然可同步)。如何用不同的pathdef同時運行兩個MATLAB實例?

然而,我的MATLAB安裝既不符合這些混帳目錄;它通常安裝在/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's?或者我應該在兩個不同的目錄安裝MATLAB?我對這個問題的各種解決方案感興趣。

回答

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會議,並決定在一個或另一個分支上工作,只需點擊相應的快捷方式,並開始劈砍而去......

更重要的是,如果你考慮一個分支爲穩定和其他作爲開發,您可以添加穩定的一個永久的路徑,並選擇使用快捷方式的路徑addpath('...','-begin')的頂部添加開發版,因此隻影響當前會話的其他分支。

screenshot

+0

Gunther的答案也是有用的,但是這個允許輕鬆地改變飛行路徑,而無需重新啓動一個新的MATLAB實例。兩種解決方案都有其好處。 – nrz

+0

我也推薦使用'addpath'和'cd',但是如果你有多個工作路徑,你可能想創建一個簡單的'changepath('projectbranch')'函數而不是每個分支的按鈕來保持數量的捷徑有限。 –

3

是的,有。在啓動matlab之前設置環境變量MATLABPATH(來自終端)

export MATLABPATH=/yourdir 
+0

這是否讓你使用此設置以後的所有MATLAB會話(除非你手動清理)? –

+0

只有在啓動的會話處於活動狀態時,環境變量'MATLABPATH'才存在。當然,您可以將此命令添加到您的'.bashrc'或'.profile'文件,因此每次新會話都會啓動該命令。也可以在'matlabrc.m'中設置'MATLABPATH',但是不知道。如果你正在尋找只是改變這一點,我會看看那個 –

相關問題