I'm trying to run MATLAB scripts from command-line and am having problems getting MATLAB to return results to stdout.
When running the following command, MATLAB prints the license banner and exits without printing the message.
matlab -nodisplay -nojvm -r "fprintf(1, 'value: %f\n', 2.0); quit;"
*note: I am currently running Version 7.10.0.499 (R2010a) 64-bit (maci64)
As was shown in this related post, you can use the -logfile
option to make a copy of all outputs to a file.
matlab -nodisplay -nojvm -logfile out.txt -r "fprintf(1, 'value: %f\n', 2.0); quit;"
On Windows, use the -wait
command-line options to block the execution of your script until MATLAB closes.
On Unix, you can use sleep 5s
to sleep for 5 seconds, or use the wait
command to pause execution until the process finishes:
#!/bin/sh
matlab -nodisplay -logfile out.txt -r "rand(3), quit"
wait $(ps | grep matlab | awk '{print $2}') && cat out.txt
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With