В настоящее время я использую внешний редактор файлов Matlab.m с настраиваемой системой сборки, которая вызывает Matlab из командной строки для запуска скрипта Matlab (с -nosplash
и -nodesktop
). Однако это создает две проблемы:
1) Matlab закрывается сразу после запуска скрипта: любые окна или графики, которые я вызываю в скрипте, закрываются сразу после запуска скрипта, что, очевидно, происходит в считанные секунды.
2) Каждый раз, когда я запускаю скрипт, есть небольшая задержка, потому что Matlab эффективно запускается с нуля.
Поэтому мне было интересно, можно ли запустить Matlab в фоновом режиме и просто запускать сценарии, когда захочу?
Я использую Linux 64bits, Matlab 2013a и Sublime Text 3.
EDIT: Я тестировал установку с помощью базового скрипта:
a=5;
figure
plot(a);
EDIT2: Я вызываю Matlab через систему Sublime Text build, которая работает:
matlab -nosplash -nodesktop <[script].m
Нет способа заставить Matlab работать в фоновом режиме и "просто запускать скрипты, когда захотите", не открывая где-нибудь интерактивный сеанс.
Предположим, что ваша система имеет собственную оболочку matlab-wrapper
которая используется для отправки сценариев в фоновом режиме. Вы бы назвали ваш скрипт следующим:
$ matlab-wrapper myscript.m
Вероятно, matlab-wrapper
делает что-то вроде этого:
#!/bin/bash
/apps/matlab14a/bin/matlab -nodesktop -nosplash -r run\ "$1",exit
Или даже больше, отправляя вышеуказанный скрипт планировщику через qsub
или какую-либо другую команду.
Ключ будет изменять скрипт-оболочку, чтобы найти ту часть, где фактически вызывается двоичный файл Matlab. Если ваша система позволяет, вы можете скопировать сценарий оболочки и изменить его. (Или просто удалив -r run\ "$1"
или что-то более сложное.) Затем вы сможете запустить интерактивную версию Matlab для каждой настраиваемой конфигурации в своей системе и вызвать свои скрипты из команды Matlab окно.
-nodesktop
.