запустить Matlab в пакетном режиме - PullRequest
10 голосов
/ 07 декабря 2009

Мне кажется, что есть два способа запустить Matlab в пакетном режиме:

первый:

unset DISPLAY  
matlab > matlab.out 2>&1 << EOF  
plot(1:10)  
print file  
exit  
EOF

Второй использует опцию "-r MATLAB_command":

matlab -nojvm -nosplash -r MyCommand   

Эти два эквивалента?

Что означает «<< EOF» и последний «EOF» в первом методе? </p>

Спасибо и всего наилучшего!

1 Ответ

6 голосов
/ 07 декабря 2009

Первый метод просто перенаправляет стандартный вывод > matlab.out и стандартную ошибку 2>&1 в файл matlab.out.

Затем он использует heredoc способ передачи ввода в MATLAB (это не характерно для MATLAB, это метод передачи нескольких строк в качестве ввода для программ командной строки в целом).

Синтаксис: <<, за которым следует уникальный идентификатор, затем текст, и, наконец, уникальный идентификатор для завершения. Вы можете попробовать это на оболочке:

cat << END
some
text
multiple lines
END

Второй метод использования опции -r запускает MATLAB и выполняет оператор, переданный немедленно. Это могут быть некоторые команды или имя скрипта или функции, найденной в пути. Это эквивалентно выполнению чего-то вроде:

python -c "print 'hello world'"

См. На этой странице список других параметров запуска.

...