2015-09-23 4 views
3

Есть все больше и больше пакетов на Matlab Central, которые являются общими в виде Дополнения или пользовательских инструментарии (расширение .mltbx).Установка дополнение без дисплея

Я использую такие панели инструментов, и когда на моем рабочем столе я могу просто установить их, нажав на них. Однако мой код в конечном итоге развертывается в кластере, где ни один из узлов не имеет этих наборов инструментов, и ни один из экземпляров Matlab не запускается с отображением.

Как можно программно установить надстройки?

+0

возможно дубликат [Есть ли способ, чтобы установить toolbox из окна команд Matlab?] (http://stackoverflow.com/questions/22500923/is-there-a-way-to-install-a-toolbox-from-matlabs-command-windows) – hbaderts

+0

Возможно, вы просто можете скачать/установите панель инструментов на одном компьютере и скопируйте соответствующие файлы '* .m'. Я не мог это проверить. – hbaderts

+1

Я бы не подумал, что это дубликат. Связанная почта предполагает прямой доступ к папке для добавления к пути MATLAB, которого у нас здесь нет. – excaza

ответ

3

Понюхивая подпрограммы MATLAB, я не мог найти очевидный способ справиться с этим программно, не введя, по крайней мере, некоторого пользовательского ввода.

Это, как говорится, пакет *.mltbx - это действительно просто файл *.zip, с которым мы можем получить доступ непосредственно внутри MATLAB. Чтобы проиллюстрировать это, я создал быстрый набор инструментов, используя мою папку прототипов кода, testcode-matlab.mltbx.

Если извлечь содержимое этого файла с помощью unzip: unzip('testcode-matlab.mltbx', 'temp'); вы должны оставить что-то вроде следующего:

root folder

Если мы рассмотрим содержание fsroot, мы видим, что это папка данные упакованы в панели инструментов:

folder contents

Таким образом, мы можем взять эту папку, переместить его туда, где мы хотим использовать что-то вроде copyfile, а затем добавить его в пути MATLAB с помощью addpath:

copyfile('.\temp\fsroot', '.\mytoolboxes\testtoolbox'); 
addpath('.\mytoolboxes\testtoolbox'); 
+0

Точно то, что я искал, спасибо большое :) – Sheljohn

Смежные вопросы