Tartalomjegyzék:
- 1. lépés: A kód
- 2. lépés: Ez a kód, NE MÁSOLJON ÉS PASZTOLJON
- 3. lépés: Ha bármilyen okból nem áll össze
Videó: Matlab MEX fájl készítése: 3 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:44
Utasítások az összeállított C kód Matlab integrálására. A MEX a MATLAB Executable rövidítése. A MEX-fájlok dinamikusan összekapcsolt alprogramok, amelyeket C vagy Fortran forráskódból állítanak elő, és amelyeket lefordítva a MATLAB-ról ugyanúgy futtathatnak, mint a MATLAB M-fájlokat vagy a beépített funkciókat. A külső interfész funkciók lehetővé teszik az adatok átvitelét a MEX fájlok és a MATLAB között, valamint a MATLAB függvények C vagy Fortran kódból történő hívását. Itt megmutatok mindent, amire szüksége van egy hasznos mex fájl gyors létrehozásához. szükség: = szövegszerkesztő = matlab 6.1 vagy újabb (a korábbi verziók mex fájlokat is tudnak készíteni, de kissé eltérő formátumban) = a matlab saját c -fordítóját tartalmazza, de vizuális c ++ fordítót használtam, mert megvolt.
1. lépés: A kód
töltse le a csatolt fájlt: mextest1p0.cpp
A cpp jelentése c ++ ……… Ezt teszi a kód: ……… kell egy szám, amelyet a matlab parancssorából küld. A "hello world" -t nyomtatja a matlab -ban, két argumentumot ad vissza a matlab -nak, egy két elemes számtömböt és egy karakterláncot. A visszaadott számtömb első eleme 1 + az elküldött szám, a visszaadott számtömb második eleme 2 + az elküldött szám ………. Ezt így kell megvalósítani: ………… mentse el a fájlt a számítógépére start matlab navigáljon a matlab -ban abba a könyvtárba, ahol a fájl található, majd kövesse az oldal tetején található összeállítási és végrehajtási utasításokat.cpp fájl. Nem tudom ide írni ezeket az utasításokat, mert az instructables automatikusan szerkeszti a parancsokat, és helytelenül megjeleníti őket. Az alábbi képen láthatja, hogy a kód működik. Ne aggódjon a "parancssori figyelmeztetés" miatt, úgy tűnik, ez nem befolyásol semmit. Megjegyzés a bal oldalon, az aktuális könyvtár tartalmazza a.cpp fájlt. A jobb oldalon láthatod, ahogy összeállítom a kódot, majd végrehajtom a matlabból. Olvassa el a fájlt a szövegszerkesztőben (például a Jegyzettömb a Windows rendszerben), nagyon jól dokumentált és magától értetődő, szinte mindent megtehet, amire szüksége van a kódban leírt szabályok betartásával (pl. Másolása és beillesztése, valamint csekély módosítások) ######################## …….. MEGJEGYZÉS …….. az utasítások némi bosszantó automatikus szerkesztése miatt, a kód az következő oldal NEM MŰKÖDIK, LETÖLTENI A FÁJLOT, amelyet csatoltam, a másolás és beillesztés helyett. #################################################### ######################
2. lépés: Ez a kód, NE MÁSOLJON ÉS PASZTOLJON
#################################################### ##################################################Ír Lep en RÓL …….. MEGJEGYZÉS …….. az utasítások némi bosszantó automatikus szerkesztése miatt az ezen az oldalon látható kód NEM MUNKA, le kell töltenie az általam csatolt fájlt, másolás és beillesztés helyett. ############## ######################################## Ezt írta c ++ nyelven: leevonk // ez egy matlab mex fájl kódja // a kód egy számértéket vesz fel és két számértéket ad ki // a két kimeneti számot a bemeneti számból számítják ki // a kód egy karakterlánc értéket is kiad // // a kód "hello world" nyomtatása is #include "mex.h" void mexFunction (int nlhs, mxArray *plhs , int nrhs, mxArray *prhs ) {// ############## ############################# // #######-print "hello world"-### ######### // ######################################## ### mexPrintf ("Hello world"); // ###################################### ##### // ########-Get Stuff From Matlab-########################### ########################### * tömbváltozó deklarálása a bejövő vales tárolására*/double* InValues;/* a matlabból küldött értékek*/InValues = mxGetPr (prhs [0]);/* a matlabból küldött értékek használatához, do InValues [0], InValue [1], ettől függően, hogy hány érték van. Az InValues értékeket az alábbiakban fogjuk használni. * ## // ########-Számtömb visszaadása-######### // ################### ########################/ * deklarálja a matlabra küldendő tömböt (a * tömbvé teszi) */double * OutValues;/ * Hozzon létre/rendeljen vissza visszatérési argumentumot, 1x2 (1 sor 2 oszlop) mátrixot a visszatérési tömb első helyéhez (plhs [0]) */plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL); / * Mutasson a visszatérési argumentumra */OutValues = mxGetPr (plhs [0]); / * értékeket rendel az OutValues értékekhez, amelyek a visszatérési tömb első foglalatában fognak elhelyezkedni, itt az InValues értékeket használjuk az OutValues kiszámításához */OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // ############################################ ###########-Vissza egy karakterláncot-############# // ################## ############################/* deklarálja a matlab*/char* str;/* számára elküldendő karakterlánc -változót, és rendeljen hozzá értéket a string */str = "byebye";/ *helyezze a karakterláncot a visszatérési tömbök második nyílásába (plhs [1]) */plhs [1] = mxCreateString (str); // ########## ##################################//###########--Visszatérés több cucc--############//################################ #############/ * Ha több dolgot szeretne visszaküldeni, kövesse a fenti általános szabályokat, de helyezze a cuccot más plhs -helyekbe, plhs [somenumber] */}
3. lépés: Ha bármilyen okból nem áll össze
Ha bármilyen okból nem fordítja le (kellene, jól működik a számítógépemen), akkor lássa ezeket az erőforrásokat, innen tanultam. Apró hibáik vannak (néhány régi, nem működő nyelvtan használata stb.) Dokumentáció/Calcul/matlab5v11/docs/00009/009a1.htmhttps://cnx.org/content/m12348/latest/
Ajánlott:
Exe fájl létrehozása: 3 lépés
Exe fájl létrehozása: Üdvözlöm, megtanítom, hogyan kell végrehajtható fájlt készíteni. (más néven.exe fájlok) Ez egyáltalán nem igényel kódolást. Csak kovácsold a telepítőt. A linkek itt találhatók: InstallForge Tehát minden további nélkül megtanítom az a.exe fájl létrehozását
Kötegelt fájl: Mozgásvezérlés: 3 lépés
Kötegelt fájl: Mozgásvezérlők: Amikor utánanéztem, hogyan hozhatok létre mozgásvezérlőket a CMD -ben, nem találtam pontos eredményeket, ezért úgy döntöttem, hogy saját vezérlőket készítek, amelyek működnek a WASD billentyűkkel a mozgáshoz és 1234 billentyűkkel az elforgatáshoz
SVG fájl exportálása a Fusion 360 rendszerben: 5 lépés (képekkel)
SVG fájl exportálása a Fusion 360 szolgáltatásba: Egy barátom nemrég vásárolt egy új lézervágót, és megkérdezte, hogyan használhatom a Fusion 360 -at SVG fájlok exportálásához. Azt javasoltam, hogy egyszerűen DXF fájlokat exportáljon, de kiderül, hogy a vásárolt lézer márka csak SVG fájlokat fogad el. Ez ugyanaz volt a probléma, mint én
Beszélő Arduino - MP3 lejátszása Arduino -val modul nélkül - MP3 fájl lejátszása Arduino -ból PCM használatával: 6 lépés
Beszélő Arduino | MP3 lejátszása Arduino -val modul nélkül | Mp3 fájl lejátszása az Arduino -ból PCM használatával: Ebben az utasításban megtanuljuk, hogyan kell lejátszani egy mp3 fájlt arduino -val audio modul használata nélkül, itt a PCM könyvtárat fogjuk használni az Arduino számára, amely 16 bites 8 kHz -es PCM -et játszik le
Pt.2 Bluetooth -adapter készítése (kompatibilis hangszóró készítése): 16 lépés
Pt.2 Bluetooth -adapter készítése (kompatibilis hangszóró készítése): Ebben az oktatóanyagban megmutatom, hogyan használhatom Bluetooth -adapteremet egy régi hangszóró Bluetooth -kompatibilissé tételéhez.*Ha még nem olvasta el az első utasítást a " egy Bluetooth adapter " Javaslom, hogy ezt tegye, mielőtt folytatja. C