Khi bạn gọi vpa
(từ Octave's symbolic package) lần đầu tiên, Octave tạo ra một số văn bản trên màn hình trước khi xuất kết quả thực tế. Ví dụ:Tránh văn bản không mong muốn từ gói biểu tượng của 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
Lưu ý rằng sản lượng thực tế (biến x
) là chuỗi '1.0*I'
, như mong đợi. Phần còn lại không phải là một phần của đầu ra hàm, mà là văn bản được tạo trực tiếp trên màn hình.
Văn bản đó không xuất hiện trong các cuộc gọi tiếp theo đến vpa
, chỉ lần đầu tiên sau khi bắt đầu Octave. Nó dường như không liên quan cụ thể đến vpa
, nhưng theo cách mà Octave giao tiếp với Python để xử lý các tính toán biểu tượng.
Có cách nào để tránh văn bản đó được hiển thị không? Hoặc không, có cách nào để tạm thời chụp stdout để chặn văn bản đó không? Ví dụ, số evalc
của Matlab (đánh giá một biểu thức có bắt giữ) sẽ là một giải pháp, nhưng Octave không có hàm đó.
Cảm ơn! Tôi sẽ cố gắng và lấy lại cho bạn –
Chưa có trong biểu tượng 2.2.4 của tôi. Nhưng nó trông đầy hứa hẹn! –