Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Υπολογιστών Γλώσσες

Πώς να Interface C έως MATLAB

MATLAB είναι ένα περιβάλλον προγραμματισμού τεχνικό βελτιστοποιηθεί για να ανταγωνιστεί την ταχύτητα και την αποτελεσματικότητα της γλώσσας C , όταν πρόκειται για πράξεις φορέα . Ωστόσο, υπάρχουν ένα ορισμένο σύνολο των πράξεων στο οποίο το C είναι πολύ πιο αποδοτική . Μπορεί να είναι επωφελής για να γράψει ορισμένα τμήματα της εργασίας σας και στις δύο MATLAB και C. C προγράμματα μπορούν να συγκεντρώνονται σε MATLAB υπορουτίνες χρησιμοποιώντας το " MEX " χρησιμότητα . Οδηγίες
Η 1

Δημιουργήστε ένα αντίγραφο του αρχείου προγράμματος C που επιθυμείτε να προσαρμοστούν σε μια υπορουτίνα MATLAB . 2

Προσθέστε το " mex.h " αρχείο κεφαλίδα της C αρχείο του προγράμματος που θέλετε να συγκεντρώνει σε ένα υποπρόγραμμα MATLAB :

# include " mex.h "
εικόνων 3

Προσθήκη λειτουργία πύλης " mexFunction " για να σας C αρχείο του προγράμματος μετά τη λειτουργία υπορουτίνα σας για να ενεργήσει ως διεπαφή μεταξύ MATLAB και τον κωδικό σας C . Τα επιχειρήματα των " mexFunction " θα πρέπει να περιλαμβάνει όλες τις εισόδους και τα επιχειρήματα εξόδου για υπορουτίνα σας .
Η 4

Γράψτε κώδικα σε " mexFunction " να επικυρώσει τον αριθμό των απαιτούμενων εισροών και εκροών , καθώς και η ορθή τύπο δεδομένων , το μέγεθος και το εύρος . Η γλώσσα και οι λειτουργίες C δεν παραλείπουν την χάρη σενάριο που βασίζεται λειτουργίες MATLAB
5

Χρησιμοποιήστε το " mexErrMsgIdAndTxt ( ) " λειτουργία για να ρίξει τα λάθη στο MATLAB όταν επιχειρήματα αυτά είναι ανακριβή : .

mexErrMsgIdAndTxt ( " MyToolbox : myMexFunction : missingInput " , " . Λείπει εισόδου myMexFunction απαιτεί 2 εισόδους . ")?
Η 6

Χρησιμοποιήστε MEX " κτήτορας " λειτουργίες για να μετατρέψει από τη μορφή MATLAB δεδομένων εισόδου σε C μορφή δεδομένων :

myNumber = mxGetScalar ( myInputs [ 0 ] ) ? myMatrixPointer = mxGetPr ( myInputs [ 1 ] ) ?

Δείτε MATLAB τεκμηρίωση για μια πλήρη λίστα αυτών των λειτουργιών .
Η 7

Χρησιμοποιήστε MEX " δημιουργήσει " λειτουργίες για τη δημιουργία δεδομένων MATLAB στην οποία θέλετε να αποθηκεύσετε το αποτέλεσμα της λειτουργίας C σας . Η " mxREAL " εισόδου καθορίζει τον τύπο των δεδομένων

myOutputs [ 0 ] = mxCreateDoubleMatrix ( 1 , nColumns , mxREAL )? . OutputMatrixInMATLAB = mxGetPtr ( myOutputs [ 0 ] ) ?
8

Κλήση C υπορουτίνα σας μέσα από το " mexFunction . "
Η 9

τρέχοντα κατάλογο εργασίας Direct του MATLAB στον κατάλογο που περιέχει το αρχείο σας C χρησιμοποιώντας το μενού File ή το " cd " εντολή για να αλλάξετε τον κατάλογο . από τη γραμμή εντολών
Η 10

μεταγλώττιση πρόγραμμα C με τη χρήση του MATLAB εντολή " mex : "

mex myMexFunction.c
Η 11

Execute η λειτουργία σας στο MATLAB :

myMexFunction ( είσοδοι , έξοδοι , ... )
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα