Mundarija:
- 1 -qadam: Kod
- 2 -qadam: bu kod, nusxa ko'chirmang va joylashtirmang
- 3 -qadam: Agar biron sababga ko'ra kompilyatsiya qilinmasa
Video: Matlab MEX faylini yaratish: 3 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Matlab bilan C kodini birlashtirish bo'yicha ko'rsatmalar. MEX MATLAB Executable degan ma'noni anglatadi. MEX-fayllar C yoki Fortran manba kodlaridan ishlab chiqarilgan dinamik ravishda bog'langan kichik dasturlar bo'lib, ularni kompilyatsiya qilishda MATLAB ichidan MATLAB M-fayllari yoki o'rnatilgan funksiyalar kabi ishga tushirish mumkin. Tashqi interfeys funktsiyalari MEX-fayllar va MATLAB o'rtasida ma'lumotlarni uzatish va MATLAB funktsiyalariga C yoki Fortran kodlaridan qo'ng'iroq qilish imkoniyatini beradi, bu erda men sizga kerakli mex faylini tezda yaratish uchun kerak bo'lgan hamma narsani ko'rsataman. kerak: = matn muharriri = matlab 6.1 yoki undan yuqori (oldingi versiyalar mex fayllarini ham bajarishi mumkin, lekin biroz boshqacha formatda) = matlabda o'z kompilyatori bor, lekin men vizual c ++ kompilyatoridan foydalandim.
1 -qadam: Kod
biriktirilgan faylni yuklab oling: mextest1p0.cpp
cpp c ++ degan ma'noni anglatadi ……… Kod shunday qiladi: ……… uni matlab buyruq satridan yuboradigan raqam kerak. Matlabda "Salom dunyo" ni chop etadi, matlabga ikkita argumentni qaytaradi, ikkita elementli raqamlar qatori va satrda qaytarilgan sonlar qatorining birinchi elementi 1 + siz yuborgan raqam, qaytarilgan sonlar qatorining ikkinchi elementi 2 + Siz yuborgan raqam ………. Ushbu tarzda amalga oshiriladi: ………… faylni kompyuteringizga saqlang matlabni ishga tushiring matlabda fayl joylashgan katalogga o'ting, so'ngra yuqoridagi kompilyatsiya va bajarish ko'rsatmalariga amal qiling..cpp fayli. Men bu ko'rsatmalarni bu erda yozolmayman, chunki ko'rsatmalari buyruqlarni avtomatik ravishda tahrir qiladi va noto'g'ri ko'rinadi. Quyidagi rasmda siz ishlayotgan kodni ko'rishingiz mumkin. "Buyruqlar satri haqida ogohlantirish" haqida qayg'urmang, bu hech narsaga ta'sir qilmaydi. E'tibor bering, chap tomonda joriy katalogda.cpp fayl mavjud. O'ng tomonda siz meni kodni tuzganimni va keyin matlabdan bajarayotganimni ko'rasiz. Faylni matn tahrirlovchisidan o'qing (masalan, derazadagi bloknot), u juda yaxshi hujjatlashtirilgan va o'z -o'zidan tushunarli, siz koddagi qoidalarga amal qilib (masalan, nusxa ko'chirish, joylashtirish va yasash) kerakli hamma narsani qila olasiz. ozgina o'zgartirishlar) ################################################################################################### ########################## …….. QAYD …….. ko'rsatma beradigan ba'zi zerikarli avtomatik tahrir tufayli, Keyingi sahifa ishlamaydi, siz nusxalash va joylashtirish o'rniga men biriktirgan faylni yuklab olishingiz kerak. ########################################################################################### #######################
2 -qadam: bu kod, nusxa ko'chirmang va joylashtirmang
########################################################################################### ###################### …….. QAYD ………. ko'rsatma beradigan ba'zi zerikarli avtomatik tahrirlar tufayli, bu sahifada ko'rinadigan kod YO'Q. ISHLAYIN, buni nusxalash va joylashtirish o'rniga men biriktirgan faylni yuklab olishingiz kerak. ################################ ########################################## Bu c ++ da leevonk tomonidan yozilgan // bu matlab mex faylining kodi // kod bitta raqamli qiymatni oladi va ikkita raqamli qiymatni chiqaradi // ikkita chiqish raqami kirish raqamidan hisoblanadi // kod shuningdek mag'lubiyat qiymatini chiqaradi // kod shuningdek, "salom dunyo" ni chop eting#"mex.h" void mexFunction (int nlhs, mxArray *plhs , int nrhs, mxArray *prhs ) {// ############## ###################################### "salom dunyo" ni chop etish-### ######### // ###################################################################### ### mexPrintf ("Salom dunyo"); // ###################################### ##### // #########-Matlabdan narsalar oling-######### // ################ ########################### * kiruvchi qiymatlarni ushlab turish uchun qator o'zgaruvchisini e'lon qilish*/double* InValues;/* matlabdan yuborilgan qiymatlarni olish*/InValues = mxGetPr (prhs [0]);/* matlabdan yuborilgan bu qiymatlarni ishlatish uchun InValues qiling. [0], InValue [1], va hokazo, qancha qiymat borligiga qarab. InValues quyida ishlatiladi */// ######################################## ## // ########-raqamlar qatorini qaytarish-############################## ####################### * * matlab -ga yuboriladigan qatorni e'lon qilish (* uni massiv qiladi) */double * OutValues;/ * Qaytish argumentini, qaytariladigan massivning birinchi uyasi uchun 1x2 (1 qator 2 ustunli) Matritsa yaratish/ajratish (plhs [0]) */plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL); / * Qaytish argumentiga ko'rsatgich oling */OutValues = mxGetPr (plhs [0]); / * Qaytish qatorining birinchi uyasida joylashgan OutValues qiymatlarini belgilang, bu erda biz InValues yordamida OutValues */OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // ######################################### // ###########-Stringni qaytarish-############# // ################# ###########################** string o'zgaruvchisini matlab*/char* str ga yuborilishini e'lon qilish;/* ga qiymat tayinlash string */str = "byebye";/ *mag'lubiyatni ikkinchi qatorga qaytaruvchi qatorga qo'ying (plhs [1]) */plhs [1] = mxCreateString (str); // ############ #############################################-qaytish boshqa narsalar-############################################ ############ * * ko'proq narsalarni qaytarish uchun yuqoridagi umumiy qoidalarga amal qiling, lekin boshqa plhs uyalariga joylashtiring, plhs [somenumber] */}
3 -qadam: Agar biron sababga ko'ra kompilyatsiya qilinmasa
Agar biron sababga ko'ra u kompilyatsiya qilmasa (u mening kompyuterimda yaxshi ishlashi kerak bo'lsa), bu manbalarni ko'rsam, ular men o'rgandim. Ularda ozgina nosozliklar bor (eski, ishlamaydigan grammatika va boshqalarni ishlating), lekin agar siz ikkalasi o'rtasida oldinga va orqaga o'tsangiz, siz ishlaydigan narsani birlashtira olasiz. Hujjatlar/Hisoblash/matlab5v11/docs/00009/009a1.htmhttps://cnx.org/content/m12348/latest/
Tavsiya:
Exe faylini qanday yaratish kerak: 3 qadam
Exe faylini qanday qilish kerak: Salom, men sizga bajariladigan faylni yaratishni o'rgataman. (.exe fayllari deb ham ataladi) Buning uchun hech qanday kodlash talab qilinmaydi. Faqat o'rnatuvchini yasang. Bu erda havolalar ko'rsatiladi: InstallForge Shunday qilib, men sizga a.exe faylini yaratishni o'rgataman
Gapirish Arduino - Hech qanday modulsiz Arduino bilan MP3 ijro etish - PC fayllari yordamida Arduino -dan Mp3 faylini ijro etish: 6 qadam
Gapirish Arduino | Hech qanday modulsiz Arduino bilan MP3 ijro etish | PC faylini ishlatib, Arduino -dan Mp3 faylini ijro etish: Bu erda biz audio faylni ishlatmasdan mp3 faylini arduino -da qanday ijro etishni bilib olamiz, bu erda biz Arduino uchun 8 -gigagertsli chastotali 16 -bitli PCM -ni o'ynaydigan PCM kutubxonasidan foydalanamiz
Arduino IDE -dan .hex faylini qanday yaratish mumkin, Arduino -ni Proteus -da taqlid qiling: 3 qadam
Arduino IDE -dan Arxeino -ni Proteus -da qanday taqlid qilish kerak: Umid qilamanki, bu ko'rsatmalar sizga proteus+arduino -ni o'rganish jarayoniga yordam beradi
Img faylini SquashFS -ga aylantirish (Win/Mac/Linux): 5 qadam
Convert.img faylini SquashFS -ga (Win/Mac/Linux) o'tkazish: a.img faylini squashfs.img faylga aylantirish usuli. Eslatma: Bu har bir rasm fayli bilan ishlamasligi mumkin. Men sinab ko'rganlarning ko'pi ishlamadi. Bu qadamlar Windows kompyuterda amalga oshiriladi, va Mac & Linux ko'rsatmalari si bo'lishi kerak
Har qanday media faylini (faqat taxminan) har qanday boshqa media faylga bepul aylantiring !: 4 qadam
Har qanday media faylni boshqa faylga aylantiring. wwv yoki.mov kabi universaldir, men son -sanoqsiz forumlar va veb -saytlarni qidirdim, so'ngra shunday dastur topdim