Câu hỏi: Trong Matlab, làm thế nào tôi có thể kiểm tra xem một chức năng xử lý là một chức năng cụ thể hoặc loại chức năng?Matlab - Kiểm tra xem chức năng xử lý là một chức năng hoặc chức năng cụ thể
Ví dụ: Cho phép f1
là bộ xử lý chức năng. Làm cách nào để kiểm tra xem f1
có phải là chức năng Matlab trong xây dựng mean
không? Làm cách nào để kiểm tra xem f1
có phải là một chức năng ẩn danh không?
Giải pháp hiện tại của tôi: Giải pháp hiện tại của tôi cho vấn đề này liên quan đến cuộc gọi đến chức năng functions
. functions
chấp nhận hàm xử lý làm đầu vào và trả về cấu trúc chứa thông tin về xử lý chức năng đầu vào, ví dụ: loại hàm, đường dẫn, tên hàm vv. Nó hoạt động, nhưng không phải là giải pháp lý tưởng vì, để báo giá official documentation:
"Thận trọng MATLAB® cung cấp chức năng functions
chỉ cho mục đích truy vấn và gỡ lỗi. Bởi vì hành vi của nó có thể thay đổi trong các bản phát hành tiếp theo, bạn không nên dựa vào nó vì mục đích lập trình."
Đây là một câu hỏi hợp lệ trong tóm tắt, nhưng tôi tự hỏi tại sao bạn cần phải làm điều này? Điều lớn hơn đằng sau câu hỏi mà bạn đang cố gắng làm là gì? –
@SamRoberts Trong một hàm chấp nhận 'f1' là một trong các đầu vào của nó, tôi có thể thực hiện một số đoạn cắt ngắn nếu' f1' là một trong một số hàm được nhận dạng, chẳng hạn như mẫu trung bình, v.v. muốn hàm này hoạt động đối với các loại hàm khác 'f1', ở đó không thể cắt ngắn như vậy. Điều này có nghĩa không? –
Colin, bạn có thể muốn đọc qua bài viết này, đặc biệt là hai bình luận (một trích dẫn, một trong các bình luận thực tế) từ MathWorks 'Loren Shure: http://undocumentedmatlab.com/blog/cellfun-undocumented-performance-boost/ Nó sẽ chỉ ra rằng một số hàm dựng sẵn như 'cellfun' đối mặt với cùng một vấn đề với bạn, và giải quyết vấn đề bằng cách cho phép cả hai hàm xử lý và một tập các đối số chuỗi có giới hạn ở cùng một nơi, cung cấp một đường dẫn mã thay thế và nhanh hơn dây. Chỉ là một ý nghĩ. –