Как запустить Matlab на фоне?

1

В настоящее время я использую внешний редактор файлов 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
  • 0
    Пожалуйста, предоставьте ваш сценарий оболочки / вызов сценария. Я не помню выхода из MATLAB после запуска скрипта с помощью -nodesktop .
  • 0
    Отредактировал мой ответ. Я сомневаюсь, что проблема со сценарием, хотя.
Показать ещё 5 комментариев
Теги:
command-line
sublimetext3

1 ответ

0

Нет способа заставить 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 окно.

  • 0
    Поэтому мне нужно написать скрипт, который найдет PID / идентификатор запущенного сеанса Matlab и отправит .m для запуска, верно? Я думаю, что Matlab foruns был бы более подходящим местом для исследования об этом.
  • 0
    Опять же, что означает «запуск сеанса Matlab»? Единственный известный мне способ интерактивного ввода нескольких команд в один сеанс Matlab - это интерактивный сеанс, и вы вводите команды в командном окне Matlab.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню