Πίνακας περιεχομένων:
- Βήμα 1: Ο κώδικας
- Βήμα 2: Αυτός είναι ο κώδικας, ΜΗΝ ΑΝΤΙΓΡΑΦΕΤΕ ΚΑΙ ΠΑΣΤΕΡΕΤΕ
- Βήμα 3: Εάν για οποιοδήποτε λόγο δεν μεταγλωττιστεί
Βίντεο: Δημιουργία αρχείου Matlab MEX: 3 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:38
Οδηγίες για τον τρόπο ενσωμάτωσης του μεταγλωττισμένου κώδικα C με το Matlab. Το MEX σημαίνει MATLAB εκτελέσιμο. Τα αρχεία MEX είναι δυναμικά συνδεδεμένα υπορουτίνα που παράγονται από τον πηγαίο κώδικα C ή Fortran και, όταν καταρτιστούν, μπορούν να εκτελεστούν από το MATLAB με τον ίδιο τρόπο όπως τα αρχεία MATLAB M ή ενσωματωμένες λειτουργίες. Οι εξωτερικές λειτουργίες διεπαφής παρέχουν λειτουργικότητα για τη μεταφορά δεδομένων μεταξύ αρχείων MEX και MATLAB και τη δυνατότητα κλήσης συναρτήσεων MATLAB από κώδικα C ή Fortran. Εδώ θα σας δείξω όλα όσα χρειάζεστε για να δημιουργήσετε γρήγορα ένα χρήσιμο αρχείο mex. ανάγκη: = ένας επεξεργαστής κειμένου = matlab 6.1 ή παραπάνω (παλαιότερες εκδόσεις μπορούν να κάνουν και αρχεία mex αλλά ελαφρώς διαφορετική μορφή) = το matlab έχει τον δικό του μεταγλωττιστή c που συνοδεύει, αλλά χρησιμοποίησα οπτικό μεταγλωττιστή c ++ γιατί το είχα.
Βήμα 1: Ο κώδικας
κατεβάστε το αρχείο που επισυνάπτω: mextest1p0.cpp
cpp σημαίνει c ++ ……… Αυτό κάνει ο κώδικας: ……… χρειάζεται ένας αριθμός που τον στέλνετε από τη γραμμή εντολών matlab. Εκτυπώνει "hello world" στο matlab επιστρέφει δύο ορίσματα στο matlab, έναν πίνακα αριθμών δύο στοιχείων και μια συμβολοσειρά το πρώτο στοιχείο του πίνακα αριθμών που επιστρέφεται είναι 1 + ο αριθμός που του στείλατε το δεύτερο στοιχείο του πίνακα αριθμών που επιστρέφεται είναι 2 + τον αριθμό που του στείλατε ………. Αυτός είναι ο τρόπος εφαρμογής του: ………… αποθηκεύστε το αρχείο στον υπολογιστή σας Έναρξη matlab πλοήγηση στο matlab στον κατάλογο όπου βρίσκεται το αρχείο και ακολουθήστε τις οδηγίες σύνταξης και εκτέλεσης στο επάνω μέρος του αρχείο.cpp. Δεν μπορώ να γράψω αυτές τις οδηγίες εδώ επειδή οι οδηγίες μπορούν να επεξεργαστούν αυτόματα τις εντολές και να τις κάνουν να εμφανίζονται εσφαλμένα. Στην παρακάτω εικόνα μπορείτε να δείτε τον κώδικα να λειτουργεί. Μην ανησυχείτε για την "προειδοποίηση γραμμής εντολών", δεν φαίνεται να επηρεάζει τίποτα. Παρατηρήστε στην αριστερή πλευρά, ο τρέχων κατάλογος περιέχει το αρχείο.cpp. Στα δεξιά μπορείτε να με δείτε να συντάσσω τον κώδικα και στη συνέχεια να τον εκτελώ από το matlab. Διαβάστε το αρχείο στον επεξεργαστή κειμένου (για παράδειγμα σημειωματάριο στα παράθυρα), είναι πολύ καλά τεκμηριωμένο και αυτονόητο, θα μπορείτε να κάνετε σχεδόν οτιδήποτε χρειάζεστε ακολουθώντας τις συμβάσεις του κώδικα (δηλ. Αντιγράφοντας και επικολλώντας και δημιουργώντας μικρές τροποποιήσεις) ################################################ ######################## …….. ΣΗΜΕΙΩΣΗ …….. λόγω κάποιας ενοχλητικής αυτόματης επεξεργασίας που κάνουν οι οδηγίες, ο κώδικας η επόμενη σελίδα ΔΕΝ ΘΑ ΛΕΙΤΟΥΡΓΕΙ, ΠΡΕΠΕΙ ΝΑ ΚΑΤΕΒΑΣΤΕ ΤΟ ΑΡΧΕΙΟ που επισυνάπτω αντί να το αντιγράψετε και να το επικολλήσετε. ################################################### #######################
Βήμα 2: Αυτός είναι ο κώδικας, ΜΗΝ ΑΝΤΙΓΡΑΦΕΤΕ ΚΑΙ ΠΑΣΤΕΡΕΤΕ
################################################### #… ΕΡΓΑΣΙΑ, ΠΡΕΠΕΙ ΝΑ ΚΑΤΕΒΑΣΤΕ ΤΟ ΑΡΧΕΙΟ που επισυνάπτω αντί να το αντιγράψετε και να το επικολλήσετε. #################################### ####################################### // // Αυτό γράφτηκε σε c ++ από το leevonk // είναι κωδικός για αρχείο matlab mex // ο κωδικός θα λάβει μία τιμή αριθμού και θα βγάλει δύο τιμές αριθμών // οι δύο αριθμοί εξόδου υπολογίζονται από τον αριθμό εισόδου // ο κώδικας θα εξάγει επίσης μια τιμή συμβολοσειράς // ο κώδικας θα επίσης εκτύπωση "hello world" #include "mex.h" void mexFunction (int nlhs, mxArray *plhs , int nrhs, mxArray *prhs ) {// ############# ############################## // #######-εκτύπωση "γεια σου κόσμο"-### ######## // // ######################################## ### mexPrintf ("Hello world"); // ####################################### ##### // ########-Λάβετε πράγματα από το Matlab-######### // ################ ###########################/ * δηλώστε μια μεταβλητή πίνακα για να κρατήσει τα εισερχόμενα vales*/double* InValues;/* λάβετε τις τιμές που αποστέλλονται από το matlab*/InValues = mxGetPr (prhs [0]);/* για να χρησιμοποιήσετε αυτές τις τιμές που στάλθηκαν από το matlab, κάντε InValues [0], InValue [1], κ.λπ. σύμφωνα με το πόσες τιμές υπάρχουν. Τα InValues θα χρησιμοποιηθούν παρακάτω */// ######################################## ## // #######-Επιστρέφει έναν πίνακα αριθμών-######### // #################### #######################/ * δηλώστε τον πίνακα που θα σταλεί στο matlab (το * το καθιστά πίνακα) */double * OutValues;/ * Δημιουργία/εκχώρηση ορίσματος επιστροφής, μήτρα 1x2 (1 σειρά 2) για την πρώτη υποδοχή του πίνακα επιστροφής (plhs [0]) */plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL); / * Λήψη δείκτη στο όρισμα επιστροφής */OutValues = mxGetPr (plhs [0]); / * εκχωρήστε τιμές σε OutValues που θα βρίσκονται στην πρώτη υποδοχή του πίνακα επιστροφής, εδώ χρησιμοποιούμε τα InValues για τον υπολογιστή OutValues */OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // ############################################ // ###########-Επιστροφή μιας συμβολοσειράς-############# // ################## ###########################/* δηλώστε τη μεταβλητή συμβολοσειράς προς αποστολή στο matlab*/char* str;/* εκχωρήστε μια τιμή στο string */str = "byebye";/ *βάλτε τη συμβολοσειρά στη δεύτερη υποδοχή των συστοιχιών επιστροφής (plhs [1]) */plhs [1] = mxCreateString (str); // ########## ##################################//###########--ΕΠΙΣΤΡΟΦΗ περισσότερα πράγματα--############//################################ ############/ * για να επιστρέψετε περισσότερα πράγματα, ακολουθήστε τους γενικούς κανόνες παραπάνω, αλλά τοποθετήστε τα σε άλλες υποδοχές plhs, plhs [somenumber] */}
Βήμα 3: Εάν για οποιοδήποτε λόγο δεν μεταγλωττιστεί
Εάν για οποιονδήποτε λόγο δεν μεταγλωττιστεί (θα έπρεπε, λειτουργεί καλά στον υπολογιστή μου) δείτε αυτούς τους πόρους, είναι εκεί από όπου έμαθα. Έχουν μικρές δυσλειτουργίες (χρησιμοποιήστε κάποια παλιά, μη λειτουργική γραμματική κλπ), αλλά αν πηγαίνετε μπρος -πίσω μεταξύ των δύο θα πρέπει να είστε σε θέση να καλύψετε κάτι που λειτουργεί. Http://web.ccr.jussieu.fr/ccr/ Τεκμηρίωση/Calcul/matlab5v11/docs/00009/009a1.htmhttps://cnx.org/content/m12348/latest/
Συνιστάται:
Arduino ως ISP -- Εγγραφή Hex αρχείου σε AVR -- Ασφάλεια σε AVR -- Arduino ως προγραμματιστής: 10 βήματα
Arduino ως ISP || Εγγραφή Hex αρχείου σε AVR || Ασφάλεια σε AVR || Arduino Ως προγραμματιστής: ……………………… Εγγραφείτε στο κανάλι μου στο YouTube για περισσότερα βίντεο …….. Αυτό το άρθρο έχει να κάνει με το arduino ως isp. Εάν θέλετε να ανεβάσετε ένα εξάγωνο αρχείο ή εάν θέλετε να ρυθμίσετε την ασφάλεια σας σε AVR, τότε δεν χρειάζεται να αγοράσετε προγραμματιστή, μπορείτε να κάνετε
Εξαγωγή αρχείου SVG στο Fusion 360: 5 βήματα (με εικόνες)
Εξαγωγή αρχείου SVG στο Fusion 360: Ένας φίλος αγόρασε πρόσφατα έναν νέο κόφτη λέιζερ και με ρώτησε πώς να χρησιμοποιήσω το Fusion 360 για εξαγωγή αρχείων SVG. Πρότεινα απλώς εξαγωγή αρχείων DXF, αλλά αποδεικνύεται ότι η μάρκα λέιζερ που αγόρασε δέχεται μόνο αρχεία SVG. Αυτό ήταν το ίδιο πρόβλημα που είχα
Talking Arduino - Αναπαραγωγή MP3 με Arduino χωρίς καμία μονάδα - Αναπαραγωγή αρχείου Mp3 από το Arduino χρησιμοποιώντας PCM: 6 βήματα
Talking Arduino | Αναπαραγωγή MP3 με Arduino χωρίς καμία μονάδα | Αναπαραγωγή αρχείου Mp3 από το Arduino χρησιμοποιώντας PCM: Σε αυτά τα εκπαιδευτικά προγράμματα θα μάθουμε πώς να παίζουμε ένα αρχείο mp3 με arduino χωρίς να χρησιμοποιούμε καμία μονάδα ήχου, εδώ θα χρησιμοποιήσουμε τη βιβλιοθήκη PCM για το Arduino που παίζει 16 bit PCM συχνότητας 8kHZ, οπότε ας το κάνουμε αυτό
Δημιουργία προσαρμογέα Bluetooth Pt.2 (Δημιουργία συμβατού ηχείου): 16 βήματα
Δημιουργία προσαρμογέα Bluetooth Pt.2 (Δημιουργία συμβατού ηχείου): Σε αυτό το εκπαιδευτικό εγχειρίδιο, θα σας δείξω πώς να χρησιμοποιήσετε τον προσαρμογέα Bluetooth για να κάνετε συμβατό το παλιό ηχείο με Bluetooth. έναν προσαρμογέα Bluetooth " Σας προτείνω να το κάνετε πριν συνεχίσετε.C
Δημιουργία μικρών ρομπότ: Δημιουργία ενός ρομπότ μικρού κυβικού ίντσας Micro-Sumo και μικρότερο: 5 βήματα (με εικόνες)
Δημιουργία Μικρών Ρομπότ: Δημιουργία Ρομπότ Μικρού Σούμο και Μικρότερων Κυβικών ίντσας: Ακολουθούν μερικές λεπτομέρειες σχετικά με την κατασκευή μικροσκοπικών ρομπότ και κυκλωμάτων. Αυτό το διδακτικό θα καλύψει επίσης μερικές βασικές συμβουλές και τεχνικές που είναι χρήσιμες στην κατασκευή ρομπότ οποιουδήποτε μεγέθους. Για μένα, μία από τις μεγάλες προκλήσεις στα ηλεκτρονικά είναι να δούμε πόσο μικρό είναι ένα