Satura rādītājs:
- 1. darbība: kods
- 2. darbība. Šis ir kods, NEKOPĒJIET UN IELĪPĒT
- 3. darbība. Ja kāda iemesla dēļ tas netiek apkopots
Video: Matlab MEX faila izveide: 3 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:58
Instrukcijas, kā integrēt apkopoto C kodu ar Matlab. MEX apzīmē MATLAB Executable. MEX faili ir dinamiski saistītas apakšprogrammas, kas ražotas no C vai Fortran avota koda un kuras, apkopojot, var palaist no MATLAB, tāpat kā MATLAB M-faili vai iebūvētās funkcijas. Ārējās saskarnes funkcijas nodrošina funkcionalitāti datu pārsūtīšanai starp MEX failiem un MATLAB, kā arī iespēju izsaukt MATLAB funkcijas no C vai Fortran koda. Šeit es jums parādīšu visu, kas nepieciešams, lai ātri izveidotu noderīgu mex failu. Nepieciešams: = teksta redaktors = matlab 6.1 vai jaunāks (iepriekšējās versijās var veikt arī mex failus, bet nedaudz atšķirīgs formāts)
1. darbība: kods
lejupielādējiet pievienoto failu: mextest1p0.cpp
cpp apzīmē c ++ ……… To dara kods: ……… tas paņem skaitli, kuru jūs nosūtāt no komandrindas matlab. Tas matlabā izdrukā “sveika pasaule”, atgriež matlabam divus argumentus, divu elementu skaitļu masīvu un virkni. Atgrieztā skaitļu masīva pirmais elements ir 1 + numurs, kuru jūs tam nosūtījāt, otrais atgriezto skaitļu masīva elements ir 2 + numurs, kuru jūs to nosūtījāt ………. Šādā veidā to īstenojiet: ………… saglabājiet failu savā datorā. startējiet matlab, pārejiet matlab uz direktoriju, kurā atrodas fails, pēc tam izpildiet apkopošanas un izpildes norādījumus lapas augšpusē.cpp failu. Es nevaru rakstīt šos norādījumus šeit, jo instrukcijas automātiski rediģē komandas un liek tām parādīties nepareizi. Tālāk redzamajā attēlā var redzēt, kā kods darbojas. Neuztraucieties par "komandrindas brīdinājumu", šķiet, ka tas neko neietekmē. Paziņojums kreisajā pusē, pašreizējā direktorijā ir.cpp fails. Labajā pusē var redzēt, kā es apkopoju kodu un pēc tam izpildu to no matlab. Izlasiet failu savā teksta redaktorā (piemēram, piezīmju grāmatiņu logos), tas ir ļoti labi dokumentēts un pats par sevi saprotams, jūs varēsit izdarīt gandrīz visu nepieciešamo, ievērojot koda noteikumus (ti, kopējot un ielīmējot to un nelielas izmaiņas) #################### ################ ######################## …….. PIEZĪME …….. dažu kaitinošas automātiskās rediģēšanas dēļ, ko veic norādījumi, kods, kas redzams uz nākamā lapa NEDARBOS, jums ir jālejupielādē pievienotais fails, nevis jākopē un jāielīmē. ################################################# ######################
2. darbība. Šis ir kods, NEKOPĒJIET UN IELĪPĒT
################################################ ################## ….. DARBS, jums ir LEJUPIELĀDĒT pievienoto failu, nevis kopēt un ielīmēt. ############################# ########################################> tas ir kods matlab mex failam // kods uzņems vienu skaitļa vērtību un izvadīs divas skaitļu vērtības // divi izvades skaitļi tiek aprēķināti no ievades numura // kods arī izvadīs virknes vērtību // kods arī izdrukāt "labdien pasaule" #include "mex.h" void mexFunction (int nlhs, mxArray *plhs , int nrhs, mxArray *prhs ) {// ############## ############################## #################### AM b … EI-drukājiet "sveika pasaule"-### ######### // ###################################### ### mexPrintf ("Sveika pasaule"); // #################################### ##### // ########-Get Stuff From Matlab-########################## ########################## * deklarēt masīva mainīgo, lai turētu ienākošos vales*/double* InValues;/* iegūt vērtības, kas nosūtītas no matlab*/InValues = mxGetPr (prhs [0]);/* lai izmantotu šīs vērtības, kas tika nosūtītas no matlab, veiciet InValues [0], InValue [1], utt. Atkarībā no tā, cik daudz vērtību ir. InValues tiks izmantotas zemāk: */// ############################### ## // ########-Atgriež skaitļu masīvu-######### // ################### #######################/ * deklarējiet masīvu, kas tiks nosūtīts uz matlab (* padara to par masīvu) */double * OutValues;/ * Izveidojiet/piešķiriet atgriešanās argumentu, 1x2 (1 rindas 2 kolonna) matrica atgriešanas masīva pirmajai slotā (plhs [0]) */plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL); / * Iegūstiet rādītāju uz atgriešanās argumentu */OutValues = mxGetPr (plhs [0]); / * piešķirt vērtības OutValues, kas atradīsies atgriešanas masīva pirmajā slotā, šeit mēs izmantojam InValues, lai datorizētu OutValues */OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // ########################################### ###########-Atgrieziet virkni-############# // ################# ###########################/* deklarējiet virknes mainīgo, kas jānosūta uz matlab*/char* str;/*, piešķiriet vērtību string */str = "byebye";/ *ievietojiet virkni atgriešanas masīvu otrajā slotā (plhs [1]) */plhs [1] = mxCreateString (str); // ########## ###########################################-atgriešanās vēl sīkumi-############# ################################ ############/ *, lai atgrieztu vairāk preču, ievērojiet iepriekš minētos vispārīgos noteikumus, bet ievietojiet to citos plhs slotos, plhs [somenumber] */}
3. darbība. Ja kāda iemesla dēļ tas netiek apkopots
Ja kāda iemesla dēļ tas netiek apkopots (tam vajadzētu, manā datorā tas darbojas labi), redziet šos resursus, no tiem es mācījos. Viņiem ir nelieli traucējumi (izmantojot kādu vecu, nefunkcionējošu gramatiku utt.), Bet, ja jūs pārvietojaties uz priekšu un atpakaļ starp abiem, jums vajadzētu būt iespējai apvienot kaut ko, kas darbojas. Http://web.ccr.jussieu.fr/ccr/ Dokumentācija/Calcul/matlab5v11/docs/00009/009a1.htmhttps://cnx.org/content/m12348/latest/
Ieteicams:
PDF faila izveide (2009): 8 soļi
Izveidot PDF failu (2009): šī pamācība iemācīs jums izveidot PDF failu. Tas sākas ar noteiktu programmu lejupielādi un PDF faila apskati. Šajā pamācībā es jums pastāstīšu, kā lejupielādēt programmu ar nosaukumu OpenOffice 3.0. Ja jums ha
SVG faila eksportēšana programmā Fusion 360: 5 soļi (ar attēliem)
SVG faila eksportēšana programmā Fusion 360: draugs nesen iegādājās jaunu lāzera griezēju un jautāja man, kā izmantot Fusion 360, lai eksportētu SVG failus. Es ierosināju vienkārši eksportēt DXF failus, bet izrādās, ka viņa nopirktais lāzera zīmols pieņem tikai SVG failus. Šī bija tāda pati problēma kā man
Runājošais Arduino - MP3 atskaņošana ar Arduino bez moduļa - Mp3 faila atskaņošana no Arduino, izmantojot PCM: 6 soļi
Runājošais Arduino | MP3 atskaņošana ar Arduino bez moduļa | Mp3 faila atskaņošana no Arduino, izmantojot PCM: Šajā pamācībā mēs iemācīsimies atskaņot mp3 failu ar arduino, neizmantojot nevienu audio moduli, šeit mēs izmantosim PCM bibliotēku Arduino, kas atskaņo 16 bitu PCM ar 8 kHz frekvenci, tāpēc ļauj to izdarīt
Automātiski nosūtīt e -pastu ar fotoattēlu no sērijveida faila, izmantojot veco darbvirsmu un XP: 4 soļi
Automātiski nosūtīt e -pastu ar fotoattēlu no sērijveida faila, izmantojot veco darbvirsmu un XP: Man ir ļoti paveicies, ka no mājas biroja loga paveras lielisks skats. Kad esmu prom, es vēlos redzēt, kā man pietrūkst, un es bieži esmu prom. Man agrāk bija sava vietne un mājas laika stacija, kas ar ftp augšupielādēja visus laika apstākļus
Kā atbrīvoties no stulbā " .hex bez šāda faila " Kļūda, augšupielādējot Arduino!: 4 soļi
Kā atbrīvoties no stulbā " .hex bez šāda faila " Kļūda, augšupielādējot Arduino