Turinys:
- 1 žingsnis: Kodas
- 2 veiksmas: tai yra kodeksas, NEKOPIUOKITE IR NELEISTI
- 3 žingsnis: jei dėl kokių nors priežasčių jis nesudaromas
Video: „Matlab MEX“failo sukūrimas: 3 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:49
Instrukcijos, kaip integruoti surinktą C kodą su „Matlab“. MEX reiškia „MATLAB Executable“. MEX failai yra dinamiškai susietos paprogramės, sukurtos iš C arba „Fortran“šaltinio kodo, kurias sukomponavus galima paleisti iš MATLAB taip pat, kaip ir MATLAB M failus arba integruotas funkcijas. Išorinės sąsajos funkcijos suteikia galimybę perduoti duomenis iš MEX failų į MATLAB ir gali iškviesti MATLAB funkcijas iš C arba Fortran kodo. Čia parodysiu viską, ko reikia norint greitai sukurti naudingą mex failą. reikia: = teksto rengyklė = matlab 6.1 arba naujesnė versija (ankstesnės versijos taip pat gali daryti „mex“failus, bet šiek tiek kitokio formato) = „matlab“turi savo c kompiliatorių, kuris ateina su juo, bet aš naudoju „visual c ++“kompiliatorių, nes jį turėjau.
1 žingsnis: Kodas
atsisiųskite failą, kurį pridėjau: mextest1p0.cpp
cpp reiškia c ++ ……… Štai ką daro kodas: ……… reikia skaičiaus, kurį atsiųsite iš „Matlab“komandinės eilutės. „Matlab“atspausdina „labas pasaulis“ir grąžina „Matlab“du argumentus, dviejų elementų skaičių masyvą ir eilutę. Pirmasis grąžinamo skaičių masyvo elementas yra 1 + skaičius, kurį jam išsiuntėte, antrasis grąžinto skaičių masyvo elementas yra 2 + numeris, kurį išsiuntėte ………. Štai kaip jį įgyvendinti: ………… išsaugokite failą savo kompiuteryje paleiskite „matlab“, eikite į „Matlab“katalogą, kuriame yra failas, tada vykdykite kompiliavimo ir vykdymo instrukcijas, esančias viršuje.cpp failą. Negaliu čia parašyti šių instrukcijų, nes instrukcijos automatiškai redaguoja komandas ir priverčia jas rodyti neteisingai. Žemiau esančioje nuotraukoje galite pamatyti, kaip veikia kodas. Nesijaudinkite dėl „komandinės eilutės įspėjimo“, atrodo, kad jis nieko nedaro. Pastaba kairėje pusėje, dabartiniame kataloge yra.cpp failas. Dešinėje matote, kaip aš renku kodą ir vykdau jį iš „Matlab“. Perskaitykite failą savo teksto redaktoriuje (pvz., Užrašų knygelę „Windows“), jis yra labai gerai dokumentuotas ir savaime suprantamas, jūs galėsite padaryti beveik viską, ko jums reikia, laikydamiesi kodo nuostatų (ty nukopijuokite ir įklijuokite jį ir nedideli pakeitimai) ########################### ###### kitas puslapis NEVEIKS, jūs turite ATSISIŲSTI mano pridėtą failą, o ne nukopijuoti ir įklijuoti. ############################################### #####################
2 veiksmas: tai yra kodeksas, NEKOPIUOKITE IR NELEISTI
############################################### ###### DARBAS, jūs turite atsisiųskite mano pridėtą failą, o ne kopijuoti ir įklijuoti. ################## ##################### ### tai yra „Matlab mex“failo kodas // kodas paims vieną skaičių reikšmę ir išves dvi skaičių reikšmes // du išvesties skaičiai apskaičiuojami pagal įvesties skaičių // kodas taip pat išves eilutės reikšmę // kodas taip pat spausdinti "labas pasaulis" #include "mex.h" void mexFunction (int nlhs, mxArray *plhs , int nrhs, mxArray *prhs ) {// ############## ###### ######### // ################################### ### mexPrintf („Labas pasaulis“); // #################################### ##### // ########-Get Stuff From Matlab-########################## ########################## * paskelbti masyvo kintamąjį, kad būtų galima laikyti gaunamus vales*/double* InValues;/* gauti vertes, atsiųstas iš matlab*/InValues = mxGetPr (prhs [0]);/* naudoti šias reikšmes, kurios buvo atsiųstos iš matlab, darykite InValues [0], „InValue“[1] ir kt. Pagal tai, kiek yra reikšmių. InValues bus naudojamos žemiau */// ################################# ## // ########-Grąžinkite skaičių masyvą-############################# #######################/ * deklaruoja masyvą, kuris bus išsiųstas į „Matlab“(* daro jį masyvu) */double * OutValues; * Sukurkite/paskirstykite grąžinimo argumentą, 1x2 (1 eilutės 2 stulpelio) grįžtamojo masyvo pirmojo lizdo matricą (plhs [0]) */plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL); / * Gaukite žymeklį grįžimo argumentui */OutValues = mxGetPr (plhs [0]); / * priskirkite reikšmes „OutValues“, kurios bus pirmoje grąžinimo masyvo vietoje, čia mes naudojame „InValues“, kad kompiuterizuotume „OutValues“*/OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // ########################################## ###########-Grąžinkite eilutę-############################## ###########################/* deklaruokite eilutės kintamąjį, kuris turi būti išsiųstas į matlab*/char* str;/*, string */str = "byebye";/ *įdėkite eilutę į grąžinimo masyvų antrąjį lizdą (plhs [1]) */plhs [1] = mxCreateString (str); // ########## ######################################## daugiau dalykų-########################################### #############/ * norėdami grąžinti daugiau daiktų, vadovaukitės aukščiau pateiktomis bendromis taisyklėmis, bet įdėkite medžiagą į kitus plhs lizdus, plhs [somenumber] */}
3 žingsnis: jei dėl kokių nors priežasčių jis nesudaromas
Jei dėl kokių nors priežasčių jis nerenka (turėtų, gerai veikia mano kompiuteryje), pamatysite šiuos išteklius, iš jų aš sužinojau. Jie turi nedidelių nesklandumų (kai kurios senos, neveikiančios gramatikos naudojimas ir kt.), Bet jei judate pirmyn ir atgal tarp dviejų, turėtumėte sugebėti sujungti tai, kas veikia. Http://web.ccr.jussieu.fr/ccr/ Dokumentacija/Calcul/matlab5v11/docs/00009/009a1.htmhttps://cnx.org/content/m12348/latest/
Rekomenduojamas:
SVG failo eksportavimas naudojant „Fusion 360“: 5 veiksmai (su paveikslėliais)
SVG failo eksportavimas „Fusion 360“: draugas neseniai nusipirko naują lazerinį pjaustytuvą ir paklausė manęs, kaip naudoti „Fusion 360“SVG failams eksportuoti. Aš siūliau tiesiog eksportuoti DXF failus, bet paaiškėjo, kad jo įsigytas lazerio prekės ženklas priima tik SVG failus. Tai buvo ta pati problema, kurią aš
Kalbantis Arduino - MP3 leidimas naudojant „Arduino“be jokio modulio - Mp3 failo paleidimas iš „Arduino“naudojant PCM: 6 veiksmai
Kalbantis Arduino | MP3 leidimas naudojant „Arduino“be jokio modulio | Mp3 failo paleidimas iš „Arduino“naudojant PCM: Šioje instrukcijoje sužinosime, kaip leisti mp3 failą naudojant „arduino“, nenaudojant jokio garso modulio, čia naudosime „Arduino“PCM biblioteką, kuri atkuria 16 bitų 8 kHZ dažnio PCM, todėl leidžia tai padaryti
Paprasta paketinio failo prisijungimo sistema su įkėlimo juosta: 5 žingsniai
Paprasta paketinio failo prisijungimo sistema su įkėlimo juosta: čia dalijamės prisijungimo sistemos paketiniu failu su įkėlimo juosta. Mes parodysime kodą ir taip pat parodysime, kaip juo naudotis. Taip pat galite apsilankyti mūsų tinklaraštyje, kad gautumėte daugiau paketinių failų kodų. „FFLocker 1.0“: http://errorcode401.blogspot.in/2013/06/FFlocker-1.0.html Rar
Šifruoto failo judėjimas: 7 žingsniai
Šifruotų failų judėjimas: Prieš metus dalyvavau projekte. Mums reikėjo perkelti kai kurią slaptą informaciją visoje šalyje. Apžvelgsiu, kodėl, nedvejodami pereikite prie 1 veiksmo. Fonas: mano komanda buvo nedelsiant iškviesta atkurti kompiuterį iš
Kaip atsikratyti kvailų " .hex Nėra tokio failo " Klaida įkeliant „Arduino!“: 4 žingsniai
Kaip atsikratyti kvailų " .hex Nėra tokio failo " Klaida įkeliant „Arduino!“: Ši instrukcija suteiks jums žingsnis po žingsnio instrukcijas, kaip priversti „Arduino Diecemella“iš tikrųjų įkelti namuose paruoštą kodą, o ne tik pavyzdžius „Windows XP“