3

私はMATLABとSPM8で実行される独自の脳イメージングツールボックスを開発しています。同時に、git clone分析を実行するための独自のツールボックスコードディレクトリ(ローカルgitリポジトリ)のバージョンがあります。このセットアップは、KevinReidのgitを使用して複数の異なるバージョンのファイルを同時に操作する方法についての回答 、問題の一部を解決しました(同じ.mファイルの異なるバージョンに同時にアクセスでき、git fetchまたはを使用して同期できるようにする方法git pull)。

ただし、MATLABのインストールはこれらのgitディレクトリのどちらにもありません。に正常にインストールされます/usr/local/MATLAB/R2012a/。MATLABは、に従って関数を検索します。これは、通常の関数として( )pathdef.mに格納されます。したがって、少なくともファイルを変更することによって、2つのMATLABインスタンスを同時に実行して異なるものにすることはできません。which pathdef/usr/local/MATLAB/R2012a/toolbox/local/pathdef.mpathdefpathdef.m

もちろん、MATLABはpathdef.m、パスを定義するためにどこを探すべきかを事前に知っている必要があります。pathdef.mルックアップパスを変更する方法はありますか?いくつかのMATLABコマンドライン引数またはMATLABコンソールから?または、他の方法で、2つのMATLABインスタンスを異なるもので同時に実行できるようにしますpathdefか?または、MATLABを2つの異なるディレクトリにインストールする必要がありますか?私はこの問題のあらゆる種類の解決策に興味があります。

4

2 に答える 2

4

別のアプローチを提供させてください。これには、MATLAB IDE 内でのショートカットの作成が含まれます。

2 つのショートカットを作成するだけで、それぞれに次のようなものが含まれます。

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 に答える