В основном я имею m
файл, который похож
function Z=myfunc()
% Do some calculations
dlmwrite('result.out',Z,',');
end
Я просто хочу выполнить его из командной строки, не входя в MATLAB. Я попробовал несколько опций (-nodisplay
, -nodesktop
, -nojvm
, -r
, и т.д.), ни один из них не работал. Я заканчиваю тем, что вошел в MATLAB и должен ввести "выход" для выхода.
Каково решение?
MATLAB может выполнять скрипты, но не функции из командной строки. Вот что я делаю:
Файл matlab_batcher.sh
:
#!/bin/sh
matlab_exec=matlab
X="${1}(${2})"
echo ${X} > matlab_command_${2}.m
cat matlab_command_${2}.m
${matlab_exec} -nojvm -nodisplay -nosplash < matlab_command_${2}.m
rm matlab_command_${2}.m
Вызовите его, введя:
./matlab_batcher.sh myfunction myinput
Используйте:
matlab -nosplash -nodesktop -logfile remoteAutocode.log -r matlabCommand
Убедитесь, что последняя строка matlabCommand
имеет выход.
nohup matlab -nodisplay -nodesktop -nojvm -nosplash -r script.m > output &