Sisukord:
Video: Matlabi MEX -faili tegemine: 3 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:50
Juhised kompileeritud C -koodi Matlabi integreerimiseks. MEX tähistab MATLAB Executable. MEX-failid on dünaamiliselt lingitud alamprogrammid, mis on toodetud C- või Fortran-lähtekoodist ja mida saab koostamisel käivitada MATLAB-ist samamoodi nagu MATLAB-i M-faile või sisseehitatud funktsioone. Välise liidese funktsioonid pakuvad funktsionaalsust andmete edastamiseks MEX-failide ja MATLAB-i vahel ning võimalust helistada MATLAB-funktsioonidele C- või Fortran-koodist. Siin näitan teile kõike, mida vajate kasuliku mex-faili kiireks tegemiseks. vaja: = tekstiredaktor = matlab 6.1 või uuem (varasemad versioonid võivad teha ka mex -faile, kuid veidi teistsuguses vormingus) = matlabil on kaasas oma c -kompilaator, kuid ma kasutasin visuaalset c ++ kompilaatorit, kuna see oli mul olemas.
Samm: kood
laadige alla lisatud fail: mextest1p0.cpp
cpp tähistab c ++ ……… Seda teeb kood: ……… see võtab numbri, mille saadate selle Matlab käsurealt. See prindib matlabis "tere maailm", tagastab matlabile kaks argumenti, kahe elemendiga numbrimassiivi ja stringi, mille tagastatud numbrimassiivi esimene element on 1 + number, mille te selle saatsite, tagastatud numbrimassiivi teine element on 2 + number, mille te selle saatsite ………. Seda rakendatakse järgmiselt: ………… salvestage fail oma arvutisse käivitage matlab navigeerige matlabis kataloogi, kus fail asub, seejärel järgige selle ülaosas olevaid kompileerimise ja täitmise juhiseid.cpp -fail. Ma ei saa neid juhiseid siia kirjutada, sest instructables muudab käske automaatselt ja paneb need valesti ilmuma. Alloleval pildil näete koodi töötamist. Ärge muretsege "käsureahoiatuse" pärast, tundub, et see ei mõjuta midagi. Märkus vasakul küljel, praegune kataloog sisaldab.cpp -faili. Paremal näete, kuidas ma koodi koostan ja seejärel matlabist käivitan. Lugege fail läbi oma tekstiredaktoris (näiteks Windowsi märkmik), see on väga hästi dokumenteeritud ja iseenesestmõistetav, saate koodis sisalduvate reeglite järgimisel teha peaaegu kõike, mida vajate (st kopeerida ja kleepida ning teha väikesed muudatused) ###################### #### järgmine lehekülg EI TOIMI, peate selle kopeerimise ja kleepimise asemel alla laadima faili, mille lisasin. ########################################### #####################
2. samm: see on kood, ÄRGE KOOPI JA Kleepige
############################################ ##################### …… … TÖÖ, peate selle kopeerimise ja kleepimise asemel alla laadima faili, mille lisasin. ############################## ####################################### See on kirjutatud c ++ keeles leevonk // see on matlab mex -faili kood // kood võtab ühe numbriväärtuse ja väljastab kaks numbriväärtust // kaks väljundnumbrit arvutatakse sisendarvust // kood väljastab ka stringi väärtuse // kood prindi ka "tere maailm"#sisalda "mex.h" void mexFunction (int nlhs, mxArray *plhs , int nrhs, mxArray *prhs ) {// ############## ####################################-print "tere maailm"-### ######### // ################################ ### mexPrintf ("Tere maailm"); // #################################### ##### // ########-Get Stuff from Matlab-########################## ########################## * deklareerige massiivmuutuja sissetulevate valeside hoidmiseks*/double* InValues;/* hankige matlabilt saadetud väärtused*/InValues = mxGetPr (prhs [0]);/* matlabilt saadetud väärtuste kasutamiseks tehke InValues [0], InValue [1] jne vastavalt sellele, kui palju väärtusi on. Sisestatud väärtusi kasutatakse allpool */// ############################## ## // ########-Tagastab numbrimassiivi-######### // ################### #######################/ * deklareerige massiiv, mis saadetakse matlabile (* teeb sellest massiivi) */double * OutValues;/ * Tagasiargumendi loomine/eraldamine, 1x2 (1 rida 2 veerg) maatriks tagastamismassiivi esimese pesa jaoks (plhs [0]) */plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL); / * Hankige kursor naasmisargumendile */OutValues = mxGetPr (plhs [0]); / * määrake väärtused OutValues, mis asuvad tagastusmassiivi esimeses pesas, siin kasutame InValues, et arvutada OutValues */OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // ########################################## ###########-tagastage string-############# // ################# ###########################/* deklareerige stringimuutuja, mis saadetakse aadressile matlab*/char* str;/*, määrake string */str = "byebye";/ *pange string tagastamismassiivide teise pessa (plhs [1]) */plhs [1] = mxCreateString (str); // ########## ######################################### veel asju-##################################### #############/ * rohkemate asjade tagastamiseks järgige ülaltoodud üldreegleid, kuid pange kraam teistesse plhs -teenindusaegadesse, plhs [somenumber] */}
Samm: kui seda mingil põhjusel ei koostata
Kui see mingil põhjusel ei kompileeri (see peaks minu arvutis hästi toimima), näete neid ressursse, olen sealt õppinud. Neil on vähe tõrkeid (vana, mittetoimiva grammatika kasutamine jne), kuid kui nende kahe vahel edasi -tagasi liikuda, peaksite suutma kokku panna midagi, mis töötab. Https://web.ccr.jussieu.fr/ccr/ Dokumentatsioon/Calcul/matlab5v11/docs/00009/009a1.htmhttps://cnx.org/content/m12348/latest/
Soovitan:
MatLabi kopsude segmenteerimine: 5 sammu
MatLabi kopsude segmenteerimine: Autor: Phuc Lam, Paul Yeung, Eric Reyes ------------------------------------ ------------------------------------ Tunnistades, et vead kopsude segmenteerimisel annavad tuvastamise kohta valeandmeid haiguspiirkonnast ja võib otseselt
Raspberry Pi juhtimine Matlabi abil: 5 sammu
Raspberry Pi juhtimine Matlabi abil: Hei, see õpetus käsitleb peata vaarika pi juhtimist matlabi abil. Võimalik, et peate uuema vaarika pi plaadi toetamiseks installima matlabi uusimale versioonile
MATLABi juhitav Roomba: 5 sammu
MATLAB -i juhitav Roomba: Selle projekti eesmärk on kasutada MATLAB -i ja modifitseeritud programmeeritavat iRoboti robotit. Meie rühm ühendas meie kodeerimisoskused, et luua MATLAB -skript, mis kasutab paljusid iRoboti funktsioone, sealhulgas kaljuandureid, kaitseraua sensorit
Täiskasvanute kuulmistesti tegemine MATLABi abil: 6 sammu
Täiskasvanute kuulmiskatse tegemine MATLABi abil: TÄHELEPANU: Meie test EI OLE meditsiiniline diagnostika ja seda ei tohiks sellisena kasutada. Kuulmise täpseks mõõtmiseks pöörduge arsti poole. Kasutades juba olemasolevaid materjale, tegi meie rühm kuulmistesti. Meie test on mõeldud ainult täiskasvanutele ja teismelistele
Ajukasvaja MRI tuvastamine Matlabi abil: 6 sammu
Ajukasvaja MRI tuvastamine Matlabi abil: Autor: Madhumita Kannan, Henry Nguyen, Ashley Urrutia Avila, Mei Jin See programm on loodud töötama algselt kasvajate avastamisega