Main Content

将标准输出和错误重定向到 Python

此示例说明如何将标准输出和标准错误从 MATLAB® 函数重定向到 Python® StringIO 对象。

在 Python 2.7 中,使用 StringIO 模块创建 StringIO 对象。要从 dec2hex 捕获警告消息,请指定 stdoutstderr

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)

当输入参数大于 2^52 时,dec2base 引发异常。显示在 err 中捕获的错误消息。

print(err.getvalue())
Error using dec2base (line 22)
First argument must be an array of integers, 0 <= D <= 2^52.

另请参阅

|

相关主题