Lui*_*ndo 6 python matlab symbolic-math octave
当您第一次调用vpa(来自Octave的符号包)时,Octave会在输出实际结果之前在屏幕上生成一些文本.例如:
>> x = pretty(vpa('sqrt(-1)'))
OctSymPy v2.2.4: this is free software without warranty, see source.
Initializing communication with SymPy using a popen2() pipe.
Detected Windows: using "winwrapy.bat" to workaround Octave bug #43036
Some output from the Python subprocess (pid 6680) might appear next.
OctSymPy: Communication established. SymPy v0.7.6.1.
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)]
x = 1.0*I
Run Code Online (Sandbox Code Playgroud)
请注意,实际输出(变量x)是字符串'1.0*I',如预期的那样.其余部分不是函数输出的一部分,而是直接在屏幕上生成的文本.
该文本不会出现在后续调用中vpa,仅在启动Octave后第一次出现.它似乎并没有特别相关vpa,而是Octave与Python通信以处理符号计算的方式.
有没有办法避免显示该文本?或者失败了,有没有办法暂时捕获stdout拦截该文本?例如,Matlab evalc(用捕获来评估表达式)将是一个解决方案,但Octave没有该功能.