Mündəricat:
- Addım 1: Kod
- Addım 2: Bu Koddur, KOPYALAMAYIN VƏ YAĞLAMAQ
- Addım 3: Hansı səbəbdən olursa olsun tərtib etmirsə
Video: Matlab MEX faylının hazırlanması: 3 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:48
Tərtib edilmiş C kodunu Matlab ilə necə birləşdirmək barədə təlimatlar. MEX, MATLAB Executable deməkdir. MEX-faylları, C və ya Fortran mənbə kodundan hazırlanan dinamik olaraq əlaqələndirilən alt proqramlardır ki, tərtib edildikdə MATLAB M-faylları və ya quraşdırılmış funksiyalar kimi MATLAB-dan da işlədilə bilər. Xarici interfeys funksiyaları, MEX faylları ilə MATLAB arasında məlumat ötürmə funksiyasını və C və ya Fortran kodundan MATLAB funksiyalarına zəng etmə qabiliyyətini təmin edir. Burada faydalı bir mex faylı hazırlamaq üçün lazım olan hər şeyi sizə göstərəcəyəm. lazımdır: = mətn redaktoru = matlab 6.1 və ya daha yuxarı (əvvəlki versiyalar mex faylları da edə bilər amma bir az fərqli formatda) = matlabın öz c kompilyatoru var, amma məndə olduğu üçün vizual c ++ tərtibçisindən istifadə etdim.
Addım 1: Kod
əlavə etdiyim faylı yükləyin: mextest1p0.cpp
cpp c ++ deməkdir ……… Kodun etdiyi budur: ……… matlab əmr satırından göndərdiyiniz nömrə lazımdır. Matlabda "salam dünya" yazır, iki arqumenti matlaba qaytarır, iki elementli bir sıra və bir sətir, qaytarılmış nömrə dizisinin ilk elementi 1 + göndərdiyiniz nömrə, qaytarılmış nömrə dizisinin ikinci elementidir 2 + göndərdiyiniz nömrə ………. Bunu necə həyata keçirmək olar: ………… faylı kompüterinizə qeyd edin matlabı başlatın matlabda faylın yerləşdiyi qovluğa gedin və sonra faylın yuxarısındakı tərtib və icra təlimatlarına əməl edin..cpp faylı. Bu təlimatları bura yaza bilmərəm, çünki təlimatlar əmrləri avtomatik olaraq düzəldir və səhv görünür. Aşağıdakı şəkildə kodun işlədiyini görə bilərsiniz. "Komanda xətti xəbərdarlığı" ndan narahat olmayın, heç bir şeyə təsir etməyəcək. Sol tərəfdəki bildiriş, cari qovluqda.cpp faylı var. Sağda kodu tərtib etdiyimi və sonra matlabdan icra etdiyimi görə bilərsiniz. Mətn redaktorunuzdakı faylı oxuyun (məsələn, pəncərələrdəki notepad), çox yaxşı sənədləşdirilmişdir və öz -özünə izahlıdır, koddakı qaydalara riayət etməklə ehtiyacınız olan hər şeyi edə bilərsiniz (məsələn, kopyalayıb yapışdırıb yaradın. kiçik dəyişikliklər) ################################################### ########################### …….. QEYD …….. təlimatçıların etdiyi bəzi zəhlətökən avtomatik tənzimləmə səbəbiylə, kod Növbəti səhifə İŞLƏMƏYƏCƏK, bunu kopyalayıb yapışdırmaq əvəzinə əlavə etdiyim Dosyanı YÜKLƏMƏLİSİNİZ. #################################################### ########################
Addım 2: Bu Koddur, KOPYALAMAYIN VƏ YAĞLAMAQ
#################################################### ####################### …….. QEYD ………. göstəriş verilə bilən bəzi zəhlətökən avtomatik düzəlişlər səbəbindən bu səhifədə göründüyü kimi kod olmayacaq İŞLƏ, bunu kopyalayıb yapışdırmaq əvəzinə əlavə etdiyim faylı yükləməlisən. ################################ ########################################### Bu c ++ dilində leevonk tərəfindən yazılmışdır // bir matlab mex faylı üçün koddur // kod bir ədəd dəyərini alacaq və iki ədəd dəyərini çıxaracaq // iki çıxış nömrəsi giriş nömrəsindən hesablanır // kod da bir simli dəyər çıxaracaq // kod həmçinin "salam dünya" nı yazın#"mex.h" void mexFunction daxil edin (int nlhs, mxArray *plhs , int nrhs, mxArray *prhs ) {// ############# ########################################-"salam dünya" çap et-### ################################################### ### mexPrintf ("Salam dünya"); // ###################################### ##### // #########-Matlab-dan Şeylər Alın-######### // ############### ###########################/ * gələn dəyərləri tutmaq üçün bir sıra dəyişən elan edin*/cüt* InValues;/* matlab -dan göndərilən dəyərləri əldə edin*/InValues = mxGetPr (prhs [0]);/* matlab -dan göndərilən bu dəyərləri istifadə etmək üçün InValues edin. [0], InValue [1] və s. Neçə dəyərə görə. Qiymətlər aşağıda istifadə olunacaq */// ######################################### ## // ########-Nömrələr silsiləsini qaytarın-############################# ######################## * * matlab -a göndəriləcək serialı elan edin (* onu bir sıra halına gətirir) */double * OutValues;/ * Qaytarma arqumenti, qaytarma dizisinin ilk yuvası üçün 1x2 (1 sıra 2 sütun) Matrixi yaradın/ayırın (plhs [0]) */plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL); / * Geri qaytarma arqumentinə işarə alın */OutValues = mxGetPr (plhs [0]); / * qaytarma dizisinin ilk yuvasında yerləşəcək OutValues -ə dəyərlər təyin edin, burada InValues -dən OutValues -i kompüterdə istifadə edirik */OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // ############################################# ###########-Sətri qaytar-############# // ################# ###########################** matlab*/char* str -ə göndəriləcək string dəyişənini elan edin;/* string */str = "byebye";/ *sətri qaytarma dizilərinə ikinci yuvaya qoyun (plhs [1]) */plhs [1] = mxCreateString (str); // ########## ##################################################-dönüş daha çox şey-############# // ################################ ############ * * Daha çox şey qaytarmaq üçün yuxarıdakı ümumi qaydalara riayət edin, ancaq əşyaları digər plhs yuvalarına qoyun, plhs [somenumber] */}
Addım 3: Hansı səbəbdən olursa olsun tərtib etmirsə
Hər hansı bir səbəbdən tərtib etməsə (kompüterimdə yaxşı işləməlidir) bu qaynaqları görsə, öyrəndiyim yerdir. Kiçik qüsurları var (bəzi köhnə, işləməyən qrammatika və s. İstifadə edin), ancaq ikisi arasında irəli və geri dönsəniz, işləyən bir şeyi birləşdirə bilməlisiniz. Sənədlər/Calcul/matlab5v11/docs/00009/009a1.htmhttps://cnx.org/content/m12348/latest/
Tövsiyə:
Uyğun Humanoid Robotunun Hazırlanması: 11 addım
Uyğun Humanoid Robotunun Hazırlanması: Yeniləmə & Səhifə: 17.01.2021 Baş, Üz, Vb - veb kamera əlavə edildiTendons & Əzələlər - PTFE əlavələriNervlər & Dəri - keçirici kauçuk nəticələr " Şəkildəki şey nədir? &Quot; Bu robot bədənin bir hissəsidir - xüsusi olaraq bir spi prototipi
Karbon Fiber Cib Telefonu Kassasının Hazırlanması: 10 Addım
Karbon Fiber Cib Telefonu Kılıfı Hazırlamaq: Məqsəd: Bu təlimatın məqsədi sizə karbon lifli cib telefonu çantası hazırlamağı öyrətməkdir. Qırılan telefondan pis heç nə görünmür. Poladdan beş qat daha güclü olan yüngül bir telefon korpusu ilə bundan artıq narahat olmayacaqsınız
Pi Zero Dashcam Hazırlanması (s. 3): Fayl İdarəetmə və Təkmilləşdirmələr: 3 Addım
Pi Zero Dashcam Hazırlamaq (s. 3): Fayl İdarəetmə və Təkmilləşdirmələr: Pi Zero dashcam layihəsinə davam edirik və bu yazıda, fayl idarəçiliyinə diqqət yetiririk, eyni zamanda prosesə bəzi təkmilləşdirmələr əlavə edirik. Bu layihə demək olar ki, tamamlandı və gələn həftə post/videoda yol sınaqları keçirəcəyik
Arduino İşıq Güclü Lampa Hazırlanması: 5 addım
Arduino İşıq Yoğunluğu Lampa Hazırlama: Bu layihənin məqsədi gecə açılan bir dövrə yaratmaqdır. Bu sxem, şirkətlər, gecə oxumaq və digər vacib işlər görmək üçün əladır
Danışan Arduino - Modul olmadan Arduino ilə MP3 Çalma - PCM istifadə edərək Arduinodan Mp3 Faylının Çalınması: 6 Addım
Danışan Arduino | Modul olmadan Arduino ilə MP3 Çalma | PCM istifadə edərək Arduinodan Mp3 Faylının Çalınması: Bu təlimatlarda heç bir audio modul istifadə etmədən arduino ilə mp3 faylının necə çalınacağını öyrənəcəyik, burada Arduino üçün 8kHz tezlikli 16 bit PCM oynayan PCM kitabxanasından istifadə edəcəyik