Мазмұны:

Matlab MEX файлын жасау: 3 қадам
Matlab MEX файлын жасау: 3 қадам

Бейне: Matlab MEX файлын жасау: 3 қадам

Бейне: Matlab MEX файлын жасау: 3 қадам
Бейне: Matlab для электронщика - Урок 6 - Использование C / C++ кода, MEX файлы 2024, Қараша
Anonim
Matlab MEX файлын жасау
Matlab MEX файлын жасау

Matlab -пен құрастырылған C кодын біріктіру туралы нұсқаулар. MEX MATLAB Executable дегенді білдіреді. MEX-файлдары C немесе Fortran бастапқы кодынан жасалған динамикалық байланыстырылған қосалқы бағдарламалар болып табылады, олар құрастырылған кезде MATLAB MATLAB M-файлдары немесе кіріктірілген функциялар сияқты жұмыс істей алады. Сыртқы интерфейс функциялары MEX-файлдар мен MATLAB арасында деректерді тасымалдау функциясын және C немесе Fortran кодынан MATLAB функцияларын шақыруға мүмкіндік береді. Мен сізге пайдалы mex файлын тез жасау үшін қажет нәрсені көрсетемін. қажет: = мәтіндік редактор = matlab 6.1 немесе одан жоғары (алдыңғы нұсқалар мекс файлдарын да жасай алады, бірақ форматы сәл өзгеше) = matlab -те өзінің жеке компиляторы бар, бірақ менде визуалды c ++ компиляторы болды.

1 -қадам: Кодекс

Кодекс
Кодекс

Мен қосқан файлды жүктеңіз: mextest1p0.cpp

cpp c ++ дегенді білдіреді ……… Бұл кодты жасайды: ……… ол сізге matlab пәрмен жолынан жіберілетін нөмірді алады. Ол matlab -те «сәлем әлемі» деп басып шығарады, ол екі аргументті matlab -қа қайтарады, екі элементті нөмірлер жиыны мен жолды қайтарылған сандар массивінің бірінші элементі 1 + сіз жіберген нөмір, қайтарылған сан массивінің екінші элементі 2 + Сіз жіберген нөмір ………. Мұны қалай жүзеге асыруға болады: ………… файлды компьютерге сақтау matlab бастау матлабында файл орналасқан каталогқа өтіңіз, содан кейін файлдың жоғарғы жағындағы құрастыру және орындау нұсқауларын орындаңыз..cpp файлы. Мен бұл нұсқауларды мұнда жаза алмаймын, себебі нұсқаулықтар командаларды автоматты түрде өңдейді және оларды қате көрсетеді. Төмендегі суретте сіз жұмыс істейтін кодты көре аласыз. «Пәрмен жолы туралы ескерту» туралы алаңдамаңыз, бұл ештеңеге әсер етпейтін сияқты. Ескерту сол жақта, ағымдағы каталогта.cpp файлы бар. Оң жақта сіз мені кодты құрастырып, содан кейін оны matlab -тен орындап жатқанын көре аласыз. Мәтіндік редактордағы файлды оқыңыз (мысалы, терезеде блокнот), ол өте жақсы құжатталған және өздігінен түсіндіріледі, сіз кодтағы шарттарды орындау арқылы сізге қажет нәрсені жасай аласыз (яғни оны көшіру, қою және жасау) шамалы өзгертулер) ##################################################### ########################## …….. ЕСКЕРТПЕ …….. нұсқаулықтар көрсететін кейбір автоматты тітіркендіргіштердің арқасында кодта көрсетілгендей келесі бет жұмыс істемейді, оны көшіріп, қоюдың орнына мен тіркеген файлды жүктеу керек. ################################################################################################################################# ########################

2 -қадам: Бұл код, КӨШІРМЕҢІЗ ЖӘНЕ ҚОЙМАҢЫЗ

Бұл код, КӨШІРМЕҢІЗ ЖӘНЕ ҚОЙМАҢЫЗ
Бұл код, КӨШІРМЕҢІЗ ЖӘНЕ ҚОЙМАҢЫЗ

############################################################################################################################### ###################### …….. ЕСКЕРТПЕ…….. нұсқаулықтар жасайтын тітіркендіргіш автоматты жөндеулердің арқасында, осы бетте көрсетілген код ЕМЕС ЖҰМЫС, оны көшіру мен қоюдың орнына мен қосқан файлды жүктеу керек. ################################ ############################################# Бұл с ++ тілінде leevonk арқылы жазылған // бұл matlab mex файлының коды // код бір сан мәнін қабылдайды және екі сан мәнін шығарады // екі шығыс нөмірі кіріс нөмірінен есептеледі // код сонымен қатар жол мәнін шығарады // код сонымен қатар «сәлем әлемін» басып шығарыңыз#«mex.h» void mexFunction қосыңыз (int nlhs, mxArray *plhs , int nrhs, mxArray *prhs ) {// ############## #######################################-«Сәлем әлемі» басып шығару-### ################################################################################################################################################################# ### mexPrintf («Сәлем әлемі»); // ###################################### ##### // #########-Matlab-тен материалдар алу-######### // ################ ############################/ * кіріс мәндерін ұстап тұру үшін массив айнымалысын жариялаңыз*/қос* InValues;/* matlab жіберілген мәндерді алу*/InValues = mxGetPr (prhs [0]);/* matlab жіберілген мәндерді пайдалану үшін InValues жасаңыз. [0], InValue [1] және т.б., қанша мән бар екеніне сәйкес. InValues төменде қолданылады */// ########################################## ## // ########-Сандар жиымын қайтару-############################# ######################## * * matlab -қа жіберілетін массивті жариялау (* оны массив етеді) */double * OutValues;/ * Қайтару аргументін, 1x2 (1 жол 2 баған) матрицасын қайтару жиымының бірінші ұясына (plhs [0]) */plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL) құру; / * Қайтару аргументіне көрсеткішті алыңыз */OutValues = mxGetPr (plhs [0]); / * қайтару массивінің бірінші ұяшығында болатын OutValues мәндерін тағайындайды, мұнда біз InValues бағдарламасын OutValues компьютерінде қолданамыз */OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // ############################################## ###########-Жолды қайтару-############## // ################# ###########################/* matlab*/char* str жіберілетін жол айнымалысын жариялау;/* мәнге тағайындау string */str = «byebye»;/ *жолды қайтарылатын массивтерге екінші ұяшыққа енгізу (plhs [1]) */plhs [1] = mxCreateString (str); // ########### #################################################-оралу тағы басқа-############# // ################################ ############ * * басқа заттарды қайтару үшін жоғарыдағы жалпы ережелерді сақтаңыз, бірақ басқа plhs ұяларына салыңыз, plhs [somenumber] */}

3 -қадам: Егер қандай да бір себеппен ол құрастырылмаса

Егер қандай да бір себеппен ол құрастырылмаса
Егер қандай да бір себеппен ол құрастырылмаса

Егер қандай да бір себептермен ол компиляцияланбаса (ол менің компьютерімде жақсы жұмыс істеуі керек) бұл ресурстарды көрсе, олар мен үйрендім. Оларда кішкене ақаулар бар (кейбір ескі, функционалды емес грамматиканы қолданыңыз және т. Құжаттама/Calcul/matlab5v11/docs/00009/009a1.htmhttps://cnx.org/content/m12348/latest/

Ұсынылған: