Как получить возвращаемое значение из функции MATLAB

Как получить возвращаемое значение из функции MATLAB

Я вызываю функцию MATLAB с помощью скрипта bash

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

Я пытаюсь получить возвращаемое значение из одной цифры из функции Matlab, чтобы можно было перейти к другой процедуре на основе этого возвращаемого значения.

решение1

Вы можете выйти из Matlab с помощью quitили 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'

Связанный контент