Estou chamando uma função MATLAB com um script bash
matlab -nodesktop -nosplash -nodisplay -r "matlabfunction input1 input2; quit"
Estou tentando obter um valor de retorno de um dígito da função matlab, para que possa prosseguir para outra rotina com base nesse valor de retorno.
Responder1
Você pode sair do matlab com quit
ou exit
. Eles são basicamente os mesmos, exceto que exit
você pode especificar um código de saída. Se você estiver disposto a abusar do código de saída, poderá fazer algo como
matlab -nodesktop -nosplash -nodisplay -r "exit(times(2, 7));" > /dev/null; echo $?
Se você for fazer isso, perceba que o bash pode ficar chateado com códigos de saída diferentes de zero e você pode precisar de algum tratamento de erros para garantir que sua função retorne um código de erro que a saída possa manipular.
A outra opção é capturar a saída do matlab e então analisar o que você deseja
matlab -nodesktop -nosplash -nodisplay -r "format compact; Answer=times(2, 7), exit" | sed -ne '/Answer =/{n;p}' | sed -e 's/ *//g'