Я использую MATLAB Engine. Интерфейс C в OS X. Я заметил, что если engEvalString()
получает неполный ввод MATLAB, такой как
engEvalString(ep, "x=[1 2");
or
engEvalString(ep, "for i=1:10");
то функция просто никогда не возвращает значение. Самый быстрый способ проверить это — использовать пример engdemo.c. подскажите фрагмент кода MATLAB и оцените его (т.е. вы можете напечатать что угодно).
Мое приложение позволяет пользователю вводить произвольные входные данные MATLAB и оценивать их, поэтому я не могу легко защититься от неполного ввода. Есть ли обходной путь? Есть ли способ предотвратить зависание engEvalString()
в этой ситуации или есть способ проверить произвольный фрагмент кода на правильность/полноту, прежде чем я фактически передам его в MATLAB?