So erhalten Sie den Rückgabewert einer MATLAB-Funktion

So erhalten Sie den Rückgabewert einer MATLAB-Funktion

Ich rufe eine MATLAB-Funktion mit einem Bash-Skript auf

matlab -nodesktop -nosplash -nodisplay -r "matlabfunction input1 input2; quit"

Ich versuche, einen einstelligen Rückgabewert von der Matlab-Funktion zu erhalten, sodass ich auf der Grundlage dieses Rückgabewerts mit anderen Routinen fortfahren kann.

Antwort1

Sie können Matlab entweder mit quitoder beenden exit. Sie sind im Grunde gleich, außer dass exitSie mit einen Exit-Code angeben können. Wenn Sie bereit sind, den Exit-Code zu missbrauchen, können Sie etwas wie Folgendes tun:

matlab -nodesktop -nosplash -nodisplay -r "exit(times(2, 7));" > /dev/null; echo $?

Wenn Sie dies tun, müssen Sie sich darüber im Klaren sein, dass Bash bei Exit-Codes ungleich Null möglicherweise Probleme hat und Sie möglicherweise eine Fehlerbehandlung benötigen, um sicherzustellen, dass Ihre Funktion einen Fehlercode zurückgibt, den Exit verarbeiten kann.

Die andere Möglichkeit besteht darin, die Ausgabe von Matlab zu erfassen und dann zu analysieren, was Sie möchten

matlab -nodesktop -nosplash -nodisplay -r "format compact; Answer=times(2, 7), exit" | sed -ne '/Answer =/{n;p}' | sed -e 's/ *//g'

verwandte Informationen