Этот пример показывает, как перенаправить стандартный вывод и стандартную погрешность от функции MATLAB® до объектов Python® StringIO
.
В Python 2.7 используйте модуль StringIO
, чтобы создать объекты StringIO
. Чтобы получить предупреждающее сообщение от dec2hex
, задайте stdout
и stderr
.
import matlab.engine eng = matlab.engine.start_matlab() import StringIO out = StringIO.StringIO() err = StringIO.StringIO() ret = eng.dec2hex(2**60,stdout=out,stderr=err) print(out.getvalue())
Warning: At least one of the input numbers is larger than the largest integer-valued floating-point number (2^52). Results may be unpredictable.
В Python 3.x используйте модуль io
, чтобы создать объекты StringIO
.
import matlab.engine eng = matlab.engine.start_matlab() import io out = io.StringIO() err = io.StringIO() ret = eng.dec2base(2**60,16,stdout=out,stderr=err)
dec2base
повышает исключение, когда входной параметр больше, чем 2^52. Отобразите сообщение об ошибке, полученное в err
.
print(err.getvalue())
Error using dec2base (line 22) First argument must be an array of integers, 0 <= D <= 2^52.
matlab.engine.FutureResult
| matlab.engine.MatlabEngine