Orodha ya maudhui:

Kufanya Faili ya Matlab MEX: Hatua 3
Kufanya Faili ya Matlab MEX: Hatua 3

Video: Kufanya Faili ya Matlab MEX: Hatua 3

Video: Kufanya Faili ya Matlab MEX: Hatua 3
Video: Price Scale calibration | By Malik Scale 2024, Novemba
Anonim
Kufanya Faili ya Matlab MEX
Kufanya Faili ya Matlab MEX

Maagizo ya jinsi ya kuingiza msimbo wa C uliojumuishwa na Matlab. MEX inasimama kwa MATLAB inayoweza kutekelezwa. Faili za MEX zimeunganishwa kwa nguvu na kanuni zinazozalishwa kutoka kwa C au nambari ya chanzo ya Fortran ambayo, ikijumuishwa, inaweza kuendeshwa kutoka ndani ya MATLAB kwa njia sawa na faili za MATLAB M au kazi zilizojengwa. Kazi za kiolesura cha nje hutoa utendaji wa kuhamisha data kati ya faili za MEX na MATLAB, na uwezo wa kupiga kazi za MATLAB kutoka kwa C au msimbo wa Fortran. Hapa nitakuonyesha kila kitu unachohitaji ili kutengeneza faili muhimu ya mex. hitaji:

Hatua ya 1: Kanuni

Kanuni
Kanuni

pakua faili niliyoambatanisha: mextest1p0.cpp

cpp inasimama kwa c ++ ……… Hivi ndivyo nambari hufanya: ……… inachukua nambari ambayo unaituma kutoka kwa haraka ya amri ya matlab. Inachapisha "ulimwengu wa hello" kwenye matlab inarudisha hoja mbili kwa matlab, safu ya nambari mbili ya elementi na kamba kitu cha kwanza cha safu ya nambari iliyorudishwa ni 1 + nambari uliyotuma kipengee cha pili cha safu ya nambari iliyorudishwa ni 2 + nambari uliyotuma ………. Hivi ndivyo unavyoweza kutekeleza: ………… weka faili kwenye kompyuta yako anza matlab tembea kwa matlab kwenye saraka ambayo faili ni kisha fuata maagizo ya mkusanyiko na utekelezaji juu ya faili ya.cpp. Siwezi kuandika maagizo haya hapa kwa sababu mafundisho hubadilisha kiatomati amri na kuzifanya zionekane vibaya. Katika picha hapa chini unaweza kuona nambari inafanya kazi. Usiwe na wasiwasi juu ya "onyo la laini ya amri", haionekani kuathiri chochote. Angalia upande wa kushoto, saraka ya sasa ina faili ya.cpp. Kwenye upande wa kulia unaweza kuniona nikitengeneza nambari na kisha kuitekeleza kutoka kwa matlab. Soma faili kwenye kihariri chako cha maandishi (kwa mfano notepad kwenye windows), imeandikwa vizuri sana na inajielezea mwenyewe, utaweza kufanya karibu kila kitu unachohitaji kwa kufuata mikataba katika nambari (yaani kuiga na kubandika na kutengeneza marekebisho kidogo) ######### # ######## # # ukurasa unaofuata HAUTAFANYA KAZI, UNAPASWA KUPAKUA FILELE niliyoambatanisha badala ya kunakili na kubandika hii. # ############ # # # # # # # # # # # #

Hatua ya 2: Hii ndio Kanuni, USINAKILI NA USITUMIE

Hii ndio Kanuni, USINAKILI NA USITUMIE
Hii ndio Kanuni, USINAKILI NA USITUMIE

# ############ ######## # # KAZI, UNAPASWA KUPAKUA FILELE niliyoambatanisha badala ya kunakili na kubandika hii. # # # # # ######### ni nambari ya faili ya matlab mex // nambari itachukua nambari moja na kutoa nambari mbili za nambari // nambari mbili za pato zimehesabiwa kutoka kwa nambari ya kuingiza // nambari pia itatoa thamani ya kamba // nambari itafanya pia chapisha "ulimwengu wa hello" # pamoja na "mex.h" batili mexFunction (int nlhs, mxArray * plhs , int nrhs, mxArray * prhs ) {// ############## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # mexPrintf ("Hello world"); // # # # # # # # # # # # # # # # # # # # Pata vitu kutoka Matlab - # # # # # # # # # # # # # # # * tangaza kutofautisha kwa safu kushikilia vale zinazoingia * / mbili * InValues; / * pata maadili yaliyotumwa kutoka matlab * / InValues = mxGetPr (prhs [0]); / * kutumia maadili haya ambayo yalitumwa kutoka kwa matlab, fanya InValues [0], InValue [1], nk kulingana na maadili ngapi. Thamani zitatumika hapa chini * /// # # # # # # # # # # # // # # # # # # # - Rudisha safu ya nambari - # # # # # # # # * Unda / tenga hoja ya kurudi, 1x2 (safu 1 safu 2 safu) Matrix ya safu ya kwanza ya safu ya kurudi (plhs [0]) * / plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL); / * Pata pointer kwa hoja ya kurudi * / OutValues = mxGetPr (plhs [0]); / * toa maadili kwa OutValues ambayo yatakaa kwenye safu ya kwanza ya safu ya kurudi, hapa tunatumia InValues kwa kompyuta OutValues * / OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // # # # # # # # # # # # # # # # # # # # # # # # kamba * / str = "byebye"; / * weka kamba kwenye safu ya kurudi yanayopangwa ya pili (plhs [1]) * / plhs [1] = mxCreateString (str); // # # # # # # # # # # # # # # # # # kurudi vitu zaidi - # # # # # # # # # # # # # # # # # # # # # # # # #

Hatua ya 3: Ikiwa kwa sababu yoyote haikusanyiki

Ikiwa kwa sababu yoyote haikusanyiki
Ikiwa kwa sababu yoyote haikusanyiki

Ikiwa kwa sababu yoyote haikusanyiki (inapaswa, inafanya kazi vizuri kwenye kompyuta yangu) tazama rasilimali hizi, ndio ambapo nilijifunza kutoka. Wana mianya kidogo (tumia sarufi ya zamani, isiyofanya kazi, nk) lakini ukirudi na kurudi kati ya hizo mbili lazima uweze kubana pamoja kitu kinachofanya kazi. Nyaraka / Hesabu / matlab5v11 / docs / 00009 / 009a1.htmhttps://cnx.org/content/m12348/latest/

Ilipendekeza: