Создание пользовательской системы сборки для MATLAB через Sublime Text 2

я редактировал мой .m файлов в Sublime Text 2 (отныне упоминается как Sublime для остальной части моего вопроса) в течение довольно долгого времени, и недавно привыкнув использовать функцию сборки в Sublime для запуска кода Python, я пытался настроить что-то подобное для файлов MATLAB. Я пытаюсь сделать это, потому что я устал от запуска моего кода и редактирования моего кода в отдельных окнах.

следуя документации, я попытался использовать это очень разумный кажущийся код ниже, где флаг'- r ' запускает MATLAB для запуска моего файла, флаг "-nodesktop" запускает MATLAB без большого неповоротливого JAVA GUI, а флаг "-nosplash" запускает MATLAB без ненужного заставки. Селектор позволяет Sublime автоматически использовать эту систему сборки в M файлах, а переменная path задает путь к каталогу, который запустит MATLAB (каталог, найденный при запуске "which matlab").

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

{
    "cmd": ["matlab", "-r", "-nodesktop", "-nosplash", "$file_name"],
    "selector": "source.m",
    "path": "/usr/local/MATLAB/R2012a/bin"    
}

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

/usr/local/MATLAB/R2012a/bin/matlab: 1: /usr/local/MATLAB/R2012a/bin/matlab: awk: not found
/usr/local/MATLAB/R2012a/bin/matlab: 1: /usr/local/MATLAB/R2012a/bin/matlab: expr: not found

Internal error 2: Could not determine the path of the
              MATLAB root directory.

                  original command path = /usr/local/MATLAB/R2012a/bin/matlab
                  current  command path = /usr/local/MATLAB/R2012a/bin/matlab

                  Please contact:

                      MathWorks Technical Support

                  for further assistance.

[Finished in 0.1s with exit code 1]

у кого-нибудь еще были такие проблемы вызов сценариев MATLAB через альтернативную систему сборки? Я не пытался настроить систему сборки для MATLAB в Sublime на любой другой операционной системе, кроме Ubuntu 12.04, если эта информация полезна.

он работает сейчас! Вот мой Matlab.sublime-build:

{
    "cmd": ["/usr/local/MATLAB/R2012a/bin/matlab", "-nosplash", "<$file_name"],
    "selector": "source.m"
}

обновление: теперь я размещаю файлы сборки Sublime Text 2 R2012a для Linux и Mac на моей странице Github в качестве примеров: https://github.com/jessebikman/Sublime-Text-2-build-Matlab-code

3 ответов


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

  1. выясните, как установить среду пути (которую Sublime видит), чтобы быть той из командной строки unix. На mac мне пришлось настроить файл под названием environment.plist и добавьте туда путь. Это должно избавиться от ваших ошибок awk и expr.

  2. вот мой matlab.sublime-build:

    { "cmd": ["/Applications/MATLAB_R2011b.app/bin/matlab","<$file_name"] }

Примечание

это не идеально: добавление параметров nodesktop и nosplash приводит к ошибкам. Поскольку сценарий сборки стоит сейчас, программа отлично работает в терминале,но я все равно получаю всплеск.


просто попытался получить мой код Matlab, скомпилированный через Sublime. Подключен к вашим фрагментам sublime-build, и он работает, спасибо за это! Тем не менее, я обычно кодирую связанные с компьютерным зрением вещи, где вы делаете это много:

    img = doImageConversion();
    imshow(img);
    pause;

    img = doAnotherImageConversion();
    imshow(img);
    pause;

проблема здесь в том, что sublime не останавливается на pause инструкция. Вы можете преодолеть это, заменив паузы на pause(3). Не совсем удовлетворительно, хотя! Чтобы сделать сборку фактически остановить, я нашел эти Matlab.sublime-build настройки довольно удобны:

{
    "cmd": ["xterm", "-e", "matlab", "-nosplash", "-nodesktop", "-r", "run $file_name; quit;"],
    "selector": "source.m"
}

для этого требуется xterm для установки в дистрибутив linux. Теперь Sublime запустит xterminal, запускающий файл Matlab, на самом деле остановится на инструкциях паузы и выйдет в конце. Я не тестировал этот фрагмент на более старых версиях Matlab.

Ура lustiz


просто предположение - я не использовал систему сборки в SublimeText-но вам может потребоваться поместить -r опция непосредственно перед именем файла. Если вы бежите matlab -r -nodesktop "mycommand", Он запускается нормально, пытается исполнить файл nodesktop, и терпит неудачу.

путь установки MATLAB также (как правило, если вы не установили его по-другому) имеет нижний регистр r на r2012a. Может, в этом и проблема.

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

надеюсь, что эти мысли помогут!