Cuprins:
- Pasul 1: Codul
- Pasul 2: Acesta este Codul, NU COPIAȚI ȘI PASTAȚI
- Pasul 3: dacă din orice motiv nu se compilează
Video: Realizarea unui fișier Matlab MEX: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
Instrucțiuni despre modul de integrare a codului C compilat cu Matlab. MEX înseamnă MATLAB Executable. Fișierele MEX sunt subrutine legate dinamic produse din codul sursă C sau Fortran care, atunci când sunt compilate, pot fi rulate din MATLAB în același mod ca fișierele M MATLAB sau funcții încorporate. Funcțiile de interfață externă oferă funcționalitate pentru a transfera date între fișiere MEX și MATLAB și posibilitatea de a apela funcții MATLAB din codul C sau Fortran. Aici vă voi arăta tot ce aveți nevoie pentru a face rapid un fișier mex util. nevoie: = un editor de text = matlab 6.1 sau o versiune anterioară (versiunile anterioare pot face și fișiere mex, dar un format ușor diferit) = matlab are propriul compilator c care vine cu el, dar am folosit compilatorul vizual c ++ pentru că îl aveam.
Pasul 1: Codul
descărcați fișierul pe care l-am atașat: mextest1p0.cpp
cpp înseamnă c ++ ……… Aceasta este ceea ce face codul: ……… este nevoie de un număr pe care îl trimiteți de la promptul de comandă matlab. Tipărește „hello world” în matlab returnează două argumente la matlab, un array cu două elemente și un șir primul element al matricei numerice returnate este 1 + numărul pe care i-ai trimis al doilea element al matricei numerice returnate este 2 + numărul pe care l-ați trimis ………. Iată cum să îl implementați: ………… salvați fișierul pe computer începeți matlab navigați în matlab în directorul unde este fișierul, apoi urmați instrucțiunile de compilare și execuție din partea de sus a fișier.cpp. Nu pot scrie aceste instrucțiuni aici, deoarece instructabilele editează automat comenzile și le fac să apară incorect. În imaginea de mai jos puteți vedea codul de lucru. Nu vă faceți griji cu privire la „avertismentul pe linia de comandă”, nu pare să efectueze nimic. Observați în partea stângă, directorul curent conține fișierul.cpp. În dreapta mă puteți vedea compilând codul și apoi executându-l din matlab. Citiți fișierul din editorul dvs. de text (de exemplu, blocnotesul în Windows), este foarte bine documentat și explicativ, veți putea face aproape orice aveți nevoie urmând convențiile din cod (adică copierea și lipirea acestuia și realizarea modificări ușoare) ################################################### #! pagina următoare nu va funcționa, trebuie să descărcați fișierul pe care l-am atașat în loc să copiați și să lipiți acest lucru. ###################################################### #######################
Pasul 2: Acesta este Codul, NU COPIAȚI ȘI PASTAȚI
###################################################### #! FUNCȚIONEAZĂ, TREBUIE SĂ DESCARCAȚI FIȘIERUL pe care l-am atașat în loc să copiați și să lipiți acest lucru. #################################### ####################################### // A fost scris în c ++ de leevonk // este cod pentru un fișier matlab mex // codul va lua o valoare numerică și va afișa două valori numerice // cele două numere de ieșire sunt calculate din numărul de intrare // codul va afișa și o valoare șir // codul va de asemenea, tipăriți „hello world” #include „mex.h” void mexFunction (int nlhs, mxArray * plhs , int nrhs, mxArray * prhs ) {// ############## ############################## // ####### - tipăriți „hello world” - ### ######### // ########################################### ### mexPrintf („Hello world”); // ######################################### ##### // ######## - Obține lucruri de la Matlab - ######### // ################## ########################### / * declarați o variabilă matrice pentru a păstra valorile de intrare * / double * InValues; / * obțineți valorile trimise de la matlab * / InValues = mxGetPr (prhs [0]); / * pentru a utiliza aceste valori care au fost trimise de la matlab, faceți InValues [0], InValue [1], etc în funcție de câte valori există. Valorile InValues vor fi utilizate mai jos * /// ########################################### ## // ######## - Returnează o matrice de numere - ########## // ######################. * Creați / alocați argumentul de returnare, o matrice 1x2 (1 rând 2) Matrice pentru primul slot al matricei de returnare (plhs [0]) * / plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL); / * Obțineți indicatorul către argumentul return * / OutValues = mxGetPr (plhs [0]); / * atribuiți valori OutValues care vor locui în primul slot al matricei de returnare, aici folosim InValues pentru a calcula OutValues * / OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // ############################################## // ########### - Returnează un șir - ############# // // #################### ########################### / * declarați variabila șir care trebuie trimisă matlab * / char * str; / * atribuiți o valoare șir * / str = "byebye"; / * pune șirul în al doilea slot al matricilor de returnare (plhs [1]) * / plhs [1] = mxCreateString (str); // ########### ##################################//###########--întoarcere mai multe lucruri--############//################################ ############# * * pentru a returna mai multe lucruri, urmați regulile generale de mai sus, dar introduceți lucrurile în alte sloturi plhs, plhs [somenumber] * /}
Pasul 3: dacă din orice motiv nu se compilează
Dacă din orice motiv nu compilează (ar trebui să funcționeze bine pe computerul meu), văd aceste resurse, de unde am învățat. Au mici greșeli (folosesc o gramatică veche, nefuncțională, etc), dar dacă te duci înainte și înapoi între cele două, ar trebui să poți să aduni ceva care funcționează. Http://web.ccr.jussieu.fr/ccr/ Documentație / Calcul / matlab5v11 / docs / 00009 / 009a1.htmhttps://cnx.org/content/m12348/latest/
Recomandat:
Realizarea unui robot umanoid conform: 11 pași
Crearea unui robot umanoid conform: Actualizare & Pagina: 17.01.2021 Head, Face, Etc. - cameră web adăugată Tendonuri & Muschii - adaosuri de PTFE Nervi & Piele - rezultate din cauciuc conductiv "Ce este acel lucru din imagine?" Care face parte dintr-un corp robotizat - în special un prototip spi
Realizarea unui joc Scratch: 6 pași
Efectuarea unui joc Scratch: În acest tutorial vom face un joc pe zero în care jucătorul sare în jurul lui evitându-se în roșu și încercând să ajungă la finalul final dacă ai probleme, pls comentează și votează-mă
Realizarea unui adaptor Bluetooth Pt.2 (Realizarea unui difuzor compatibil): 16 pași
Realizarea unui adaptor Bluetooth Pt.2 (Realizarea unui difuzor compatibil): În acest instructiv, vă voi arăta cum să utilizați adaptorul meu Bluetooth pentru a face compatibil un difuzor vechi Bluetooth. * Dacă nu ați citit primul meu instructable la „Realizarea un adaptor Bluetooth " Vă sugerez să faceți acest lucru înainte de a continua.C
Convertiți (doar despre) orice fișier media în (doar despre) orice alt fișier media gratuit !: 4 pași
Convertiți (doar despre) orice fișier media în (doar despre) orice alt fișier media gratuit! este mai universal, ca.wmv sau.mov. Am căutat nenumărate forumuri și site-uri web și apoi am găsit un program numit
Realizarea unui model 3D al unui Shuriken în Blender: 9 pași
Realizarea unui model 3D al unui Shuriken în Blender: Acest instructable este destinat să fie un set clar și detaliat de instrucțiuni despre cum să creați un model simplu în Blender. Face un prim proiect minunat și învață câteva dintre elementele de bază ale blenderului care pot fi utilizate pentru a crea modele mult mai complexe. Daca eu