MATLAB関数から戻り値を取得する方法

MATLAB関数から戻り値を取得する方法

bashスクリプトでMATLAB関数を呼び出しています

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

私は、matlab 関数から 1 桁の戻り値を取得して、この戻り値に基づいて他のルーチンに進めようとしています。

答え1

quitまたは のどちらかを使用してmatlabを終了できますexit。 では終了コードを指定できることを除けば、基本的に同じですexit。終了コードを悪用するつもりなら、次のようにすることができます。

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

これを実行する場合は、bash がゼロ以外の終了コードを処理すると混乱する可能性があり、関数が exit で処理できるエラー コードを返すようにするために何らかのエラー処理が必要になる可能性があることに注意してください。

もう一つの選択肢は、matlabの出力をキャプチャして、必要なものを解析することです。

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

関連情報