Sisällysluettelo:
- Vaihe 1: Koodi
- Vaihe 2: Tämä on koodi, ÄLÄ KOPIOI JA PASTAA
- Vaihe 3: Jos jostain syystä se ei käännä
Video: Matlab MEX -tiedoston luominen: 3 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:04
Ohjeet käännetyn C -koodin integroimiseksi Matlabiin. MEX tarkoittaa MATLAB Executable. MEX-tiedostot ovat dynaamisesti linkitettyjä aliohjelmia, jotka on tuotettu C- tai Fortran-lähdekoodista ja joita voidaan koottuina ajaa MATLABin sisältä samalla tavalla kuin MATLAB M-tiedostoja tai sisäänrakennettuja toimintoja. Ulkoiset käyttöliittymätoiminnot tarjoavat toimintoja tietojen siirtämiseen MEX-tiedostojen ja MATLAB-tiedostojen välillä sekä mahdollisuuden kutsua MATLAB-toimintoja C- tai Fortran-koodista. Tässä näytän sinulle kaiken, mitä tarvitset hyödyllisen mex-tiedoston nopeaan luomiseen. tarvitse: = tekstieditori = matlab 6.1 tai uudempi (aiemmat versiot voivat tehdä myös mex -tiedostoja, mutta hieman eri muodossa) = matlabilla on oma c -kääntäjä, joka tulee sen mukana, mutta käytin visuaalista c ++ -kääntäjää, koska minulla oli se.
Vaihe 1: Koodi
lataa liittämäni tiedosto: mextest1p0.cpp
cpp tarkoittaa c ++ ……… Tätä koodi tekee: ……… se vaatii numeron, jonka lähetät sen matlab -komentokehotteesta. Se tulostaa "hei maailma" matlabissa ja palauttaa kaksi argumenttia matlabille, kahden elementin numerotaulukon ja merkkijonon palautetun numerotaulukon ensimmäinen elementti on 1 + lähettämäsi numero palautetun numeromatriisin toinen elementti on 2 + lähettämäsi numero ………. Tämä toteutetaan seuraavasti: ………… tallenna tiedosto tietokoneellesi Käynnistä matlab navigoi matlabissa hakemistoon, jossa tiedosto on ja seuraa sitten kokoamis- ja suoritusohjeita.cpp -tiedosto. En voi kirjoittaa näitä ohjeita tänne, koska instructables muokkaa komentoja automaattisesti ja saa ne näyttämään väärin. Alla olevassa kuvassa näet koodin toimivan. Älä huolehdi "komentorivivaroituksesta", sillä ei näytä olevan mitään vaikutusta. Huomaa vasemmalla, nykyinen hakemisto sisältää.cpp -tiedoston. Oikealla näet, kuinka koon koodin ja suoritan sen sitten matlabista. Lue tiedosto tekstieditorissa (esimerkiksi muistilehtiö Windowsissa), se on hyvin dokumentoitu ja itsestään selvä, voit tehdä melkein mitä tarvitset noudattamalla koodin käytäntöjä (eli kopioimalla ja liittämällä sen ja tekemällä pieniä muutoksia) #################################### ######################## …….. HUOMAUTUS …….. koska jotkut ärsyttävät automaattiset editoinnit, joita ohjaukset tekevät, koodi näkyy seuraava sivu EI TOIMI, sinun on LATAA LIITETTY TIEDOSTO sen kopioinnin ja liittämisen sijaan. ################################################## ######################
Vaihe 2: Tämä on koodi, ÄLÄ KOPIOI JA PASTAA
################################################## #################### ….. TYÖ, sinun on LATAA LIITETTY TIEDOSTO sen kopioinnin ja liittämisen sijaan. ################################## ###################################### Tämä on kirjoittanut c ++: lla leevonk // se on koodi Matlab mex -tiedostolle // koodi ottaa yhden numeroarvon ja antaa kaksi numeroarvoa // kaksi lähtölukua lasketaan tulonumerosta // koodi antaa myös merkkijonon arvon // koodi tulosta myös "hello world" #include "mex.h" void mexFunction (int nlhs, mxArray *plhs , int nrhs, mxArray *prhs ) {// ############## ####################################-tulosta "hei maailma"-### ######### // ####################################### ### mexPrintf ("Hello world"); // ##################################### ##### // ########-Get Stuff from Matlab-########################## ########################## * ilmoita matriisimuuttuja, joka pitää saapuvat vales*/double* InValues;/* hae matlabista lähetetyt arvot*/InValues = mxGetPr (prhs [0]);/* käyttääksesi näitä matlabista lähetettyjä arvoja, tee InValues [0], InValue [1], jne. Sen mukaan, kuinka monta arvoa on. InValues -arvoja käytetään alla */// ######################################### ## // ########-Palauta numerotaulukko-######### // ################### #######################/ * ilmoita matlabille lähetettävä taulukko (* tekee siitä taulukon) */double * OutValues;/ * Luo/varaa palautus argumentti, 1x2 (1 rivi 2 sarake) matriisi paluutaulukon ensimmäiselle aikavälille (plhs [0]) */plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL); / * Hae osoitin paluuargumenttiin */OutValues = mxGetPr (plhs [0]); / * määritä arvot OutValues -arvoille, jotka sijaitsevat palautusmatriisin ensimmäisessä paikassa, tässä käytämme InValues -arvoja OutValues -arvojen */OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // ########################################### ###########-Palauta merkkijono-############# // ################# ############################/* ilmoittaa merkkijonomuuttujan lähetettäväksi matlab*/char* str;/* anna arvo string */str = "byebye";/ *laita merkkijono paluutaulukon toiseen paikkaan (plhs [1]) */plhs [1] = mxCreateString (str); // ########## ##################################//###########--palata lisää juttuja-############################################# #############/ * palauta lisää tavaraa noudattamalla yllä olevia yleisiä sääntöjä, mutta laita tavara muihin plhs -korttipaikkoihin, plhs [somenumber] */}
Vaihe 3: Jos jostain syystä se ei käännä
Jos jostain syystä se ei käännä (sen pitäisi toimia hyvin tietokoneessani) nähdä nämä resurssit, olen oppinut niistä. Niissä on pieniä häiriöitä (vanhan, toimimattoman kieliopin käyttö jne.) Dokumentaatio/Calcul/matlab5v11/docs/00009/009a1.htmhttps://cnx.org/content/m12348/latest/
Suositeltava:
Oman aurinkosähkö 5V -järjestelmän luominen: 4 vaihetta (kuvilla)
Oman aurinkosähkö 5 V: n järjestelmän luominen: Tässä käytetään buck-muunninta 5 V: n ulostulona akun (Li Po/Li-ion) lataamiseen. Ja tehostinmuunnin 3,7 V: n akulle 5 V: n USB -ulostulolle tarvittavia laitteita varten 5 V. Samanlainen kuin alkuperäinen järjestelmä, joka käyttää lyijyakkua energian varastointilaitteena
Yhteensopivan humanoidirobotin luominen: 11 vaihetta
Yhteensopivan Humanoid -robotin luominen: Päivitä & Sivu: 17.1.2021 Pää, kasvot jne. - verkkokamera lisättyJännet & Lihakset - PTFE -lisäyksetHervat & Ihoa johtavat kumitulokset "Mitä se on kuvassa?" Se on osa robottirunkoa - erityisesti prototyyppiä
Microbit -pelin luominen: 7 vaihetta
Microbit -pelin luominen: Hai kaverit, Tässä oppitunnissa aion opettaa sinulle, kuinka luoda peli Tinkercadissa käyttämällä uutta erikoiskomponenttia microbit
Kannettavan älypeilin luominen/meikkilaatikkoyhdistelmän luominen: 8 vaihetta
Kannettavan älypeilin luominen/meikkilaatikkoyhdistelmän luominen: Viimeisenä projektina Davisin & Elkinsin yliopisto, päätin suunnitella ja luoda meikkimatkalaukun sekä suuremman peilin ja käyttää vadelmapiä ja taikuuspeiliohjelmistoa, joka toimisi porttina
Bookhuddle.comin, verkkosivuston luominen kirjan tietojen löytämiseen, järjestämiseen ja jakamiseen, luominen: 10 vaihetta
Bookhuddle.comin, verkkosivuston luominen kirjan tietojen löytämiseen, järjestämiseen ja jakamiseen, luominen: Tässä viestissä kuvataan vaiheet, jotka liittyvät luomaan ja käynnistämään Bookhuddle.com -verkkosivusto, jonka tarkoituksena on auttaa lukijoita löytämään, järjestämään ja jakamaan kirjan tietoja. koskisi muiden verkkosivustojen kehittämistä