2009-02-10 32 views
8

Tôi đang viết một tệp Matxab mex. Tuy nhiên, các tệp mex dường như có một giới hạn nghiêm trọng: help mexfilename sẽ không khiến văn bản trợ giúp xuất hiện.Cách thêm "trợ giúp" -text vào một hàm mex?

Tôi có thể phá vỡ điều này bằng cách viết một tệp m, cuối cùng gọi tập tin mex, nhưng bao gồm trợ giúp, nhưng phải có cách tốt hơn.

Ở phía bên kia, như vậy tôi có thể làm tất cả các kiểm tra lỗi trong m-file, nó ở đâu xa thuận tiện hơn để làm như vậy ...

Trả lời

10

Tôi tin rằng PierreBdR là đúng; bạn sẽ tạo ra một phiên bản m-file của hàm của bạn chỉ với các cuộc gọi tiêu đề và khối bình luận, nhưng không có cơ thể.

Có thể không phải là một ý tưởng tồi khi đặt lỗi kiểm tra đầu vào trong tệp m, sau đó có tệp m gọi tệp mex (bạn có thể phải cung cấp cho họ tên khác). Nó có thể là thẳng tiến hơn để kiểm tra các biến trong MATLAB (sử dụng, ví dụ, được xây dựng trong như nargchk) và đặt chúng thành một định dạng chuẩn mà bạn luôn có thể muốn đầu vào cho hàm mex có. Nhiều chức năng Hộp công cụ xử lý hình ảnh mà tôi đã xem xét dường như thực hiện điều này (định dạng và kiểm tra dữ liệu trong tệp m sau đó thực hiện các tính toán đắt tiền trong một tệp mex).

+3

Tôi nhận ra điều này là cũ, nhưng chỉ cần làm theo lời khuyên ở đây - tôi thấy rằng tập tin 'm' phải nằm trong cùng thư mục với tập tin' mex', nếu không thì Matlab sẽ ưu tiên tệp 'm' trống và không làm gì cả! – n00dle

+1

@ianhales: Tôi thường đặt tệp M (với đối số đầu vào phân tích cú pháp và kiểm tra) trên đường dẫn và tệp MEX (thực hiện tính toán thực) trong thư mục 'private' liền kề. Ví dụ, bạn có '/ path/to/myfcn.m' và'/path/to/private/myfcn_mex.m' (giả sử '/ path/to' được thêm vào đường dẫn), với' myfcn' gọi hàm MEX riêng – Amro

5

Bạn phải tạo một m-file (name.m) có cùng tên với tệp mex của bạn (name.c). Sau đó, bạn đặt khai báo hàm và văn bản trợ giúp, nhưng không có phần thân hàm. Ví dụ:

function [o1,o2] = MyFct(i1,i2,i3) 
% MyFct takes 3 arguments and returns 2 ...  
Các vấn đề liên quan