Talaan ng mga Nilalaman:

Paggawa ng isang Matlab MEX File: 3 Mga Hakbang
Paggawa ng isang Matlab MEX File: 3 Mga Hakbang

Video: Paggawa ng isang Matlab MEX File: 3 Mga Hakbang

Video: Paggawa ng isang Matlab MEX File: 3 Mga Hakbang
Video: 88 IS THE NEW 69 POS’IS’TION SA KA -MA | CHERRYL TING 2024, Hulyo
Anonim
Gumagawa ng isang Matlab MEX File
Gumagawa ng isang Matlab MEX File

Mga tagubilin sa kung paano isama ang pinagsamang C code sa Matlab. Ang MEX ay nangangahulugang maisasakatuparan ang MATLAB. Ang mga MEX-file ay pabago-bagong naka-link na subroutine na ginawa mula sa C o Fortran source code na, kapag naipon, ay maaaring patakbuhin mula sa loob ng MATLAB sa parehong paraan tulad ng MATLAB M-files o built-in na mga pag-andar. Ang mga panlabas na pag-andar ng interface ay nagbibigay ng pag-andar upang ilipat ang data sa pagitan ng mga MEX-file at MATLAB, at ang kakayahang tawagan ang mga pagpapaandar ng MATLAB mula sa C o Fortran code. Dito ipapakita ko sa iyo ang lahat ng kailangan mo upang mabilis na makagawa ng isang kapaki-pakinabang na mex file. kailangan: = isang text editor = matlab 6.1 o mas mataas (ang mga naunang bersyon ay maaaring gawin ang mga mex file ngunit may kakaibang format) = ang matlab ay may sariling c compiler na kasama nito, ngunit ginamit ko ang visual c ++ compiler sanhi ng pagkakaroon ko nito.

Hakbang 1: Ang Code

Ang Code
Ang Code

i-download ang file na na-attach ko: mextest1p0.cpp

Ang cpp ay nangangahulugang c ++ ……… Ito ang ginagawa ng code: ……… tumatagal ng isang numero na ipadala mo ito mula sa matlab command prompt. Ito ay naglilimbag ng "hello world" sa matlab nagbabalik ito ng dalawang mga argumento sa matlab, isang dalawang elemento ng numero ng array at isang string ang unang elemento ng ibinalik na numero na array ay 1 + ang numero na ipinadala mo sa iyo ang pangalawang elemento ng naibalik na numero ng array ay 2 + ang numero na ipinadala mo rito …….cpp file Hindi ko maisulat ang mga tagubiling ito dito dahil ang mga instruktable ay awtomatikong nag-e-edit ng mga utos at ginagawang mali ito. Sa larawan sa ibaba makikita mo ang code na gumagana. Huwag mag-alala tungkol sa "babala ng linya ng utos", tila wala itong epekto. Pansinin sa kaliwang bahagi, naglalaman ang kasalukuyang direktoryo ng.cpp file. Sa kanan makikita mo ako sa pag-iipon ng code at pagkatapos ay ipatupad ito mula sa matlab. Basahin ang file sa iyong text editor (halimbawa ng notepad sa windows), napakahusay na dokumentado at nagpapaliwanag sa sarili, magagawa mo ang halos anumang kailangan mo sa pamamagitan ng pagsunod sa mga kombensiyon sa code (ibig sabihin, ang pagkopya at pag-paste nito at paggawa ng bahagyang mga pagbabago) #### ###Oooooooooooooooo sa susunod na pahina AY HINDI gagana, KAILANGAN mong i-download ang file na na-attach ko sa halip na kopyahin at i-paste ito. ###Oooooooooooooooo ####

Hakbang 2: Ito ang Code, HUWAG MAG-COPY AT PASTE

Ito ang Code, HUWAG MAG-COPY AT PASTE
Ito ang Code, HUWAG MAG-COPY AT PASTE

###Oooooooooooooooo ###Oooooooooooooooooooooooo TRABAHO, kailangan mong i-download ang file na na-attach ko sa halip na kopyahin at i-paste ito. ###Oooooooooooooooo ito ay code para sa isang matlab mex file // ang code ay kukuha ng isang halaga ng numero at maglalabas ng dalawang halaga ng numero // ang dalawang mga numero ng output ay kinakalkula mula sa input number // ang code ay maglalabas din ng isang halaga ng string // ang code ay i-print din ang "hello world" # isama ang "mex.h" void mexFunction (int nlhs, mxArray * plhs , int nrhs, mxArray * prhs ) {// #### # # ### mexPrintf ("Kamusta mundo"); // ###################################### ### ### // #### #### * ideklara ang isang variable ng array upang hawakan ang mga papasok na vales * / doble * InValues; / * kunin ang mga halagang ipinadala mula sa matlab * / InValues = mxGetPr (prhs [0]); / * upang magamit ang mga halagang ito na ipinadala mula sa matlab, gawin ang mga InValues [0], InValue [1], atbp. Ayon sa kung gaano karaming mga halaga ang mayroong. Gagamitin ang Mga InValues sa ibaba * /// ################ ## // #### #### - Bumalik ng isang hanay ng numero - ######### // ######### ########### #### * Lumikha / maglaan ng argumento sa pagbalik, isang 1x2 (1 hilera 2 haligi) Matrix para sa unang puwang ng return array (plhs [0]) * / plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL); / * Kumuha ng pointer sa muling pagtatalo * / OutValues = mxGetPr (plhs [0]); / * magtalaga ng mga halaga sa OutValues na maninirahan sa unang slot ng return array, narito ginagamit namin ang mga InValues upang computer ang OutValues * / OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // #### ###Oooooooooooooooo ###oooooooo string * / str = "byebye"; / * ilagay ang string sa mga pabalik na arrays pangalawang puwang (plhs [1]) * / plhs [1] = mxCreateString (str); // #### ###oooooooooooooooo Mas maraming bagay--############//################################ ####

Hakbang 3: Kung para sa Anumang Dahilan Hindi Ito Nag-iipon

Kung para sa Anumang Dahilan Hindi Ito Sumusulat
Kung para sa Anumang Dahilan Hindi Ito Sumusulat

Kung para sa anumang kadahilanan na hindi ito nag-iipon (dapat, gumagana nang maayos sa aking computer) tingnan ang mga mapagkukunang ito, kung saan ako natutunan. Mayroon silang maliit na mga glitches (ang paggamit ng ilang luma, hindi ginagamit na gramatika, atbp) ngunit kung pabalik-balik ka sa pagitan ng dalawa dapat kang magkasama sa isang bagay na gumagana. Https://web.ccr.jussieu.fr/ccr/ Dokumentasyon / Calcul / matlab5v11 / docs / 00009 / 009a1.htmhttps://cnx.org/content/m12348/latest/

Inirerekumendang: