Sadržaj:
- Korak 1: Kôd
- Korak 2: Ovo je kôd, NE KOPIRAJTE I LIJEPITE
- Korak 3: Ako se iz bilo kojeg razloga ne sastavlja
Video: Izrada Matlab MEX datoteke: 3 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:09
Upute o tome kako integrirati prevedeni C kod s Matlabom. MEX znači MATLAB Executable. MEX datoteke su dinamički povezane podrutine proizvedene iz izvornog koda C ili Fortrana koje se, kada su kompajlirane, mogu pokrenuti iz MATLAB-a na isti način kao MATLAB M-datoteke ili ugrađene funkcije. Funkcije vanjskog sučelja pružaju mogućnost prijenosa podataka između MEX-datoteka i MATLAB-a, te mogućnost pozivanja MATLAB funkcija iz C ili Fortran koda. Ovdje ću vam pokazati sve što vam je potrebno za brzu izradu korisne mex datoteke. potrebno: = uređivač teksta = matlab 6.1 ili novija verzija (starije verzije mogu raditi i mex datoteke, ali nešto drugačijeg formata) = matlab ima svoj vlastiti c kompajler koji dolazi s njim, ali sam koristio vizuelni c ++ kompajler jer sam ga imao.
Korak 1: Kôd
preuzmite datoteku koju sam priložio: mextest1p0.cpp
cpp označava c ++ ……… Ovo je ono što kod radi: ……… potreban je broj koji ste mu poslali iz matlab naredbenog retka. Ispisuje "hello world" u matlab -u, vraća dva argumenta u matlab, niz od dva elementa i niz, prvi element vraćenog niza brojeva je 1 + broj koji ste mu poslali, drugi element vraćenog niza brojeva je 2 + broj koji ste mu poslali ……..cpp datoteku. Ne mogu ovdje napisati ova uputstva jer instrukcije automatski uređuju naredbe i čine da se pojavljuju pogrešno. Na donjoj slici možete vidjeti kako kôd radi. Ne brinite o "upozorenju komandne linije", čini se da ništa ne utječe. Primijetite s lijeve strane, trenutni direktorij sadrži.cpp datoteku. S desne strane možete vidjeti kako sastavljam kôd, a zatim ga izvršavam iz matlaba. Pročitajte datoteku u svom uređivaču teksta (na primjer bilježnicu u prozorima), vrlo je dobro dokumentirana i sama po sebi razumljiva, moći ćete učiniti gotovo sve što vam treba slijedeći konvencije u kodu (tj. Kopirate i lijepite je i pravite male izmjene) ############################################### ######################### …….. NAPOMENA …….. zbog nekog dosadnog automatskog uređivanja koje instrukcije rade, kôd koji se vidi na sljedeća stranica NEĆE RADITI, MORATE PREUZETI DATOTEKU koju sam priložio umjesto da je kopirate i zalijepite. ################################################# #######################
Korak 2: Ovo je kôd, NE KOPIRAJTE I LIJEPITE
################################################# ##################### …….. NAPOMENA ……..zbog nekog dosadnog automatskog uređivanja koje instrukcije rade, kôd prikazan na ovoj stranici NEĆE RADITE, MORATE PREUZETI DATOTEKU koju sam priložio umjesto kopiranja i lijepljenja ove datoteke. ############################## ####################################### // Ovo je na c ++ napisao leevonk // to je kôd za matlab mex datoteku // kôd će uzeti jednu brojčanu vrijednost i ispisati dvije vrijednosti broja // dva izlazna broja se računaju iz ulaznog broja // kôd će također ispisati vrijednost niza // kôd će također ispišite "hello world" #include "mex.h" void mexFunction (int nlhs, mxArray *plhs , int nrhs, mxArray *prhs ) {// ############### ############################# // #######-ispišite "hello world"-### ########## // ###################################### ### mexPrintf ("Zdravo svijete"); // ################################### ##### // #########-Preuzmite stvari od Matlaba-######### // ################ ###########################/ * deklarirajte varijablu niza za držanje dolaznih vrijednosti*/double* InValues;/* dobijte vrijednosti poslane iz matlab*/InValues = mxGetPr (prhs [0]);/* za korištenje ovih vrijednosti poslanih iz matlab -a, učinite InValues [0], InValue [1], itd. Prema broju vrijednosti. InValues će se koristiti ispod */// ####################################### ## // ########-Vraća niz brojeva-######### // ################### ########################/ * deklarirajte niz koji će biti poslan u matlab (* čini ga nizom) */double * OutValues;/ * Kreirajte/dodijelite povratni argument, 1x2 (stupac 1 reda 2) matricu za prvi utor polja za povratak (plhs [0]) */plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL); / * Dobijte pokazivač na povratni argument */OutValues = mxGetPr (plhs [0]); / * dodijelite vrijednosti OutValues koje će se nalaziti u prvom utoru povratnog niza, ovdje koristimo InValues za računanje OutValues */OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // ########################################## // ###########-Vraća niz-############# // ################# ###########################/* deklariše promenljivu niza koja se šalje matlab*/char* str;/* dodeljuje vrednost string */str = "byebye";/ *stavite niz u drugi slot povratnih nizova (plhs [1]) */plhs [1] = mxCreateString (str); // ########## ################################## // ############-povratak više stvari-############ // ############################### ############/ * za vraćanje više stvari, slijedite gore navedena opća pravila, ali stavite stvari u druge slotove za plhs, plh [neki broj] */}
Korak 3: Ako se iz bilo kojeg razloga ne sastavlja
Ako iz nekog razloga ne kompajlira (trebalo bi, radi dobro na mom računaru) vidi ove resurse, od njih sam naučio. Imaju malih problema (koristite neku staru, nefunkcionalnu gramatiku itd.), Ali ako idete naprijed -natrag između njih dvoje, trebali biste moći spojiti nešto što funkcionira. Https://web.ccr.jussieu.fr/ccr/ Dokumentacija/Calcul/matlab5v11/docs/00009/009a1.htmhttps://cnx.org/content/m12348/latest/
Preporučuje se:
Kako poslati velike datoteke sa računara na računar: 6 koraka
Kako slati velike datoteke sa računara na računar: Veličina datoteka nastavlja da se povećava kako tehnologija napreduje. Ako se bavite kreativnim zanatom, poput dizajna ili modeliranja, ili ste samo hobist, prijenos velikih datoteka može biti muka. Većina usluga e -pošte ograničava maksimalnu veličinu priloga na oko 25
Izrada Bluetooth adaptera Pt.2 (Izrada kompatibilnog zvučnika): 16 koraka
Izrada Bluetooth adaptera Pt.2 (Izrada kompatibilnog zvučnika): U ovom uputstvu pokazat ću vam kako koristiti svoj Bluetooth adapter kako bi stari zvučnik bio kompatibilan s Bluetooth -om.*Ako niste pročitali moje prve upute o " Bluetooth adapter " Predlažem da to učinite prije nego nastavite. C
Izrada malih robota: Izrada mikro-sumo robota od jednog kubičnog inča i manji: 5 koraka (sa slikama)
Izgradnja malih robota: izrada mikro-sumo robota od jednog kubičnog inča i manjih: Evo nekoliko detalja o izgradnji sićušnih robota i kola. Ovo uputstvo će obuhvatiti i neke osnovne savjete i tehnike koje su korisne u izgradnji robota bilo koje veličine. Za mene je jedan od velikih izazova u elektronici vidjeti koliko je mali
Kako komprimirati ISO datoteke vaših Psp sigurnosnih kopija u datoteke OCD -a radi uštede prostora .: 4 koraka
Kako komprimirati ISO datoteke vaših Psp sigurnosnih kopija u datoteke CSO -a radi uštede prostora .: U ovom uputstvu pokazat ću vam kako komprimirati sigurnosne kopije vaših PSPS -ova iz ISO -a u CSO da biste uštedjeli prostor na memorijskoj kartici, koristeći samo jedan softver koji je upotrebljiv sa Wine In Ubuntu. Za izradu će vam trebati i CFW (Cusstom Firm-Ware) psp
Kako popraviti nepodržane datoteke s podacima i preuzeti svoje omiljene video datoteke za svoj PSP prijenosni uređaj: 7 koraka
Kako popraviti nepodržane datoteke s podacima i preuzeti svoje omiljene video datoteke za svoj PSP prijenosni računar: Koristio sam Media Go i izveo neke od trikova kako bi nepodržane video datoteke radile na mom PSP -u. Ovo su svi moji koraci koje sam učinio , kada sam prvi put pokrenuo svoje nepodržane video datoteke za rad na svom PSP -u. Radi 100% sa svim mojim video datotekama na mom PSP Po