如何從 MATLAB 函數取得返回值

如何從 MATLAB 函數取得返回值

我正在使用 bash 腳本呼叫 MATLAB 函數

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

我試圖從 matlab 函數取得一位數的回傳值,這樣我就可以根據該回傳值繼續執行其他例程。

答案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'

相關內容