Estoy llamando a una función de MATLAB con un script bash
matlab -nodesktop -nosplash -nodisplay -r "matlabfunction input1 input2; quit"
Estoy tratando de obtener un valor de retorno de un dígito de la función matlab, para poder continuar con otra rutina basada en este valor de retorno.
Respuesta1
Puede salir de matlab con quit
o exit
. Son básicamente iguales excepto que exit
puedes especificar un código de salida. Si está dispuesto a abusar del código de salida, puede hacer algo como
matlab -nodesktop -nosplash -nodisplay -r "exit(times(2, 7));" > /dev/null; echo $?
Si va a hacer esto, tenga en cuenta que bash puede molestarse por los códigos de salida distintos de cero y es posible que necesite algún manejo de errores para asegurarse de que su función devuelva un código de error que la salida pueda manejar.
La otra opción es capturar la salida de matlab y luego analizar lo que quieras.
matlab -nodesktop -nosplash -nodisplay -r "format compact; Answer=times(2, 7), exit" | sed -ne '/Answer =/{n;p}' | sed -e 's/ *//g'