2016-01-18 12 views
6

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 đó.

Trả lời

3

Tùy chọn sympref quiet onrecently been committed ít nhất là loại bỏ một số thư. Kiểm tra doc sympref để xem các thay đổi đã có trong phiên bản của bạn chưa.

+0

Cảm ơn! Tôi sẽ cố gắng và lấy lại cho bạn –

+1

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! –

Các vấn đề liên quan