【问题标题】:Avoid unwanted text from Octave's symbolic package避免 Octave 符号包中不需要的文本
【发布时间】:2016-01-18 12:06:36
【问题描述】:

当您第一次调用vpa(来自Octave 的symbolic package)时,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

请注意,实际输出(变量x)是字符串'1.0*I',正如预期的那样。其余的不是函数输出的一部分,而是直接在屏幕上生成的文本。

该文本不会出现在随后对vpa 的调用中,仅在启动 Octave 后第一次出现。它似乎与vpa 没有特别的关系,而是与 Octave 与 Python 通信以处理符号计算的方式有关。

有没有办法避免显示该文本?或者如果做不到这一点,有没有办法临时捕获标准输出来截取该文本?例如,Matlab 的evalc(使用捕获评估表达式)是一种解决方案,但 Octave 没有该功能。

【问题讨论】:

    标签: python matlab octave symbolic-math


    【解决方案1】:

    一个选项sympref quiet onrecently been committed,它至少抑制了一些消息。检查 doc sympref 以查看您的版本中是否已存在更改。

    【讨论】:

    • 谢谢!我会试试然后回复你
    • 尚未包含在我的符号 2.2.4 中。但它看起来很有希望!
    • 我刚刚在 Windows 10 上检查了 Octave 4.2.2 和 Symbolic Package 2.6.0。sympref quiet on 减少了不需要的输出,但仍然产生两行 :-/ 在 Linux Fedora 上更好,它只是产生一个空的换行符
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 2017-02-18
    • 2017-12-05
    相关资源
    最近更新 更多