Вопрос по git, path, matlab, git-clone – Как запустить два экземпляра MATLAB одновременно с разными pathdef?

3

Я разрабатываю свой собственный инструментарий для визуализации мозга, который работает под управлением MATLAB & amp; SPM8, и в то же время у меня естьgit clone'd версия моей собственной директории кода набора инструментов (локальный репозиторий git) для запуска анализа, эта установка создана в соответствии с ответом Кевина Рейда наКак работать одновременно с несколькими разными версиями файлов с помощью 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) как обычная функция. Поэтому я не могу одновременно запустить два экземпляра MATLAB, чтобы они имели разныеpathdefпо меньшей мере, не изменяяpathdef.m файл.

Конечно, MATLAB должен знать заранее, где искатьpathdef.m определить путь. Есть ли способ изменитьpathdef.m путь поиска, например. каким-либо аргументом командной строки MATLAB или из консоли MATLAB? Или каким-то другим способом, чтобы у меня могло быть два экземпляра MATLAB, работающих одновременно с разнымиpathdef& APOS; s? Или я должен установить MATLAB в двух разных каталогах? Я заинтересован во всех видах решений этой проблемы.

Ваш Ответ

2   ответа
3

есть. Установите переменную окружения MATLABPATH перед запуском matlab (из терминала)

export MATLABPATH=/yourdir
Переменная средыMATLABPATH существует только до тех пор, пока сеанс, в котором он запущен, является живым. Конечно, вы можете добавить эту команду в свой.bashrc или же.profile файл, так что он запускается при каждом новом сеансе. Также возможно установитьMATLABPATH вmatlabrc.mне знаю наверняка. Если вы ищете просто изменить это, я бы посмотрел на это
Оставит ли это вам этот параметр для всех будущих сессий matlab (если вы не очистите вручную)?
4

Позвольте мне предложить альтернативный подход. Это включает в себя созданиесочетания внутри MATLAB IDE.

Просто создайте два ярлыка, каждый из которых содержит что-то вроде:

addpath(genpath('/path/to/project_branch'))   %// add branch (and subfolders) to MATLAB path
cd('/path/to/project_branch')                 %// navigate to directory

(Explanation: The call to addpath не сохранит изменения в масштабе всей системы, но сохранится только для текущего сеанса, если только вы не вызоветеsavepath)

Теперь, когда вы начинаете новый сеанс MATLAB и решаете работать с той или иной веткой, просто нажмите на соответствующую ссылку и начните взламывать ...

Еще лучше, если вы рассматриваете одну ветку какstable а другой какdevВы можете добавить стабильный путь к пути навсегда и выборочно добавить версию для разработки в начало пути.addpath('...','-begin') используя ярлык, таким образом, затеняя другую ветвь только для текущего сеанса.

screenshot

Я также рекомендовал бы использоватьaddpath а такжеcdОднако, если у вас есть несколько путей для работы, вы можете создать простойchangepath('projectbranch') Функция вместо кнопки на ветке, чтобы ограничить количество ярлыков.
Ответ Гюнтера также полезен, но он позволяет легко изменять путь на лету, без перезапуска нового экземпляра MATLAB. Оба решения имеют свои преимущества. nrz

Похожие вопросы