Я работаю над проектом, который использует несколько языков:
- SQL для запросов к базе данных
- Perl / Ruby для быстрой и грязной обработки данных из базы данных и некоторой другой бухгалтерии
- Matlab для матрично-ориентированных вычислений
- Различные языки статистики (SAS / R / SPSS) для обработки вывода Matlab
Каждый язык хорошо подходит для своей ниши, и у нас уже есть достаточное количество кода в каждом. Прямо сейчас, есть много ручной работы, чтобы выполнить все эти шаги, которые были бы намного лучше написаны в сценарии. Я уже сделал это на Linux, и он работает относительно хорошо.
В Linux:
matlab -nosplash -nodesktop -r "command"
или
echo "command" | matlab -nosplash -nodesktop
... открывает Matlab в режиме «командной строки». (То есть окна не создаются - он просто читает из STDIN, выполняет и выводит в STDOUT / STDERR.) Моя проблема в том, что в Windows (XP и 7) этот же код открывает окно и не читает из / записи в командной строке. Это просто смотрит на меня безучастно, полностью игнорируя STDIN и STDOUT.
Как мне написать скрипт запуска команд Matlab в Windows? Я в основном хочу что-то, что будет делать:
ruby database_query.rb
perl legacy_code.pl
ruby other_stuff.rb
matlab processing_step_1.m
matlab processing_step_2.m
# etc, etc.
Я обнаружил, что у Matlab есть флаг -automation
в Windows для запуска «сервера автоматизации» . Это звучит как излишнее для моих целей, и я хотел бы что-то, что работает на обеих платформах.
Какие варианты у меня есть для автоматизации Matlab в этом рабочем процессе?