2015-03-02 18 views
11

Tôi phải chuyển đổi một chuỗi như str='x^2+3' thành một hàm. Giải pháp là lấy hàm nội tuyến f=inline(str), nhưng sẽ không được hỗ trợ trong các phiên bản sau.Làm thế nào để chuyển đổi chuỗi để xử lý chức năng trong Matlab?

Giải pháp thay thế là f=eval(['@(x)',f]) nhưng dường như không phải là tùy chọn gọn gàng.

Chức năng str2func không hoạt động vì nó chỉ yêu cầu tên của hàm hiện có.

Trả lời

12

Không có tác phẩm nào sau đây?

str = 'x^2+3'; 
f = str2func(['@(x)' str]); 
+1

Khi OP tuyên bố rằng 'str2func' sẽ không hoạt động, bạn có thể đề cập rằng với' ['@ (x)' str] 'bạn thực sự tạo một hàm * tồn tại * sau đó và thuyết phục' str2func' làm nhiệm vụ của mình. Chỉ là một gợi ý, tôi sẽ xóa bình luận sau này. – thewaywewalk

+0

Cảm ơn bạn đã phản hồi, tôi sẽ để lại bình luận của bạn ngay bây giờ ít nhất vì nó giải thích rõ ràng. – am304

+1

Bạn cũng có thể nói rằng '['@ (x)' str]' là "tên" của chức năng ẩn danh được tạo ra trên bay –

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