Мазмуну:
- 1 -кадам: Код
- 2 -кадам: Бул Кодекс, КӨЧҮРҮП ЖАНА КОЙУУГА БОЛБО
- 3 -кадам: Эгерде кандайдыр бир себеп менен ал компиляцияланбаса
Video: Matlab MEX файлын түзүү: 3 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:43
Түзүлгөн C кодун Matlabке кантип интеграциялоо боюнча нускамалар. MEX MATLAB Executable дегенди билдирет. MEX-файлдары C же Fortran булак коддорунан өндүрүлгөн динамикалык түрдө байланышкан программалар болуп саналат, алар түзүлүп жатканда MATLAB ичинде MATLAB M файлдары же камтылган функциялар сыяктуу иштетилиши мүмкүн. Тышкы интерфейстин функциялары MEX-файлдары менен MATLAB ортосундагы маалыматтарды өткөрүп берүү мүмкүнчүлүгүн камсыз кылат жана C же Fortran кодунан MATLAB функцияларын чакыруу мүмкүнчүлүгүн камсыз кылат. керек: = текст редактору = matlab 6.1 же андан жогору (мурунку версиялар mex файлдарын да жасай алат, бирок форматы бир аз башкача) = matlabтин өзүнүн с компилятору бар, бирок менде визуалдык c ++ компилятору бар болчу.
1 -кадам: Код
тиркелген файлды жүктөп алыңыз: mextest1p0.cpp
cpp c ++ дегенди билдирет ……… Бул код эмне кылат: ……… аны matlab буйрук сабынан жөнөткөн номер керек. Ал matlabке "салам дүйнө" дегенди басып чыгарат, ал эки аргументти matlabке кайтарат, эки элементтин номери массиви жана сап Кайтып келген сан массивинин биринчи элементи 1 + сиз жиберген сан, кайтарылган сан массивинин экинчи элементи 2 + Сиз жөнөткөн номер ………. Муну кантип ишке ашыруу керек: ………… файлды компьютериңизге сактоо matlabти баштоо matlabте файл жайгашкан каталогго өтүңүз, андан кийин файлдын жогору жагындагы компиляция жана аткаруу көрсөтмөлөрүн аткарыңыз..cpp файлы. Мен бул көрсөтмөлөрдү бул жерге жаза албайм, анткени көрсөтмөлөр командаларды автоматтык түрдө түзөтүп, аларды туура эмес кылып көрсөтөт. Төмөндөгү сүрөттө сиз иштеп жаткан кодду көрө аласыз. "Командалык сап эскертүүсү" жөнүндө кабатыр болбоңуз, бул эч нерсеге таасир бербейт окшойт. Сол жагында эскертүү, учурдагы каталогдо.cpp файлы бар. Оң жакта сиз мени кодду түзүп, анан аны matlabтан аткарып жатканымды көрө аласыз. Файлды текст редакторуңуздан окуңуз (мисалы, терезелердеги блокнот), ал абдан жакшы документтештирилген жана өзүнөн өзү түшүнүктүү, сиз коддогу эрежелерди сактоо менен керектүү нерселердин бардыгын жасай аласыз (б.а. көчүрүү, чаптоо жана жасоо) кичине өзгөртүүлөр) ################################################### ########################## …….. ЭСКЕРТҮҮ …….. анткени инструкторлор автоматтык түрдө оңдоп-түзөгөндүктөн, коду кийинки барак ИШТЕБЕЙТ, муну көчүрүү жана чаптоо ордуна мен тиркеген ФАЙЛДЫ ЖҮКТӨП АЛУУ КЕРЕК. #################################################### #########################
2 -кадам: Бул Кодекс, КӨЧҮРҮП ЖАНА КОЙУУГА БОЛБО
#################################################### ###################### …….. ЭСКЕРТҮҮ ………. инструкторлордун кылган кээ бир тажатма авто-түзөтүүлөрүнүн себебинен, бул бетте көрүнгөн код ЭМЕС ИШТЕҢИЗ, муну көчүрүп, чаптоонун ордуна мен тиркеген ФАЙЛДЫ ЖҮКТӨП АЛУУ КЕРЕК. ################################# ############################################ Бул c ++ тилинде 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ка жөнөтүлө турган массивди жарыялоо (* аны массив кылат) */кош * 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/
Сунушталууда:
Ардуино ISP катары -- AVRде Hex файлын жазуу -- AVRдеги сактандыруучу -- Ардуино программист катары: 10 кадам
Ардуино ISP катары || AVRде Hex файлын жазуу || AVRдеги сактандыруучу || Ардуино программист катары: ……………………… Сураныч, дагы видеолор үчүн менин YouTube каналыма ЖАЗЫЛЫҢЫЗ …….. Бул макала isp сыяктуу ардуино жөнүндө. Эгерде сиз он алтылык файлды жүктөгүңүз келсе же AVRде сактандыргычты орноткуңуз келсе, анда программистти сатып алуунун кажети жок, сиз жасай аласыз
Кантип портативдүү акылдуу күзгү түзүү/куту айкалышын түзүү: 8 кадам
Кантип портативдүү акылдуу күзгү түзүү/куту айкалыштыруу: Дэвистеги капстоюнум үчүн акыркы долбоор катары & Элкинс колледжи, мен порт катары иштей турган чоң күзгү жана малина пи жана сыйкырдуу күзгү программалык платформасын колдонуу менен бирге саякат кутусун иштеп чыгууну чечтим
Exe файлын кантип түзүү керек: 3 кадам
Exe файлын кантип жасоо керек: Саламатсызбы, мен сизге аткарылуучу файлды кантип жасоону үйрөтөм. (ошондой эле .exe файлдары катары белгилүү) Бул үчүн эч кандай коддоо талап кылынбайт. Жөн эле орнотуучуну жасаңыз. Шилтемелер бул жерде берилет: InstallForge Ошентип, мындан ары мен сизге a.exe файлын жасоону үйрөтөм
SVG файлын Fusion 360 менен экспорттоо: 5 кадам (сүрөттөр менен)
Fusion 360та SVG файлын экспорттоо: Жакында бир досум жаңы лазер кескич сатып алды жана SVG файлдарын экспорттоо үчүн Fusion 360ты кантип колдонууну сурады. Мен анын ордуна DXF файлдарын экспорттоону сунуштадым, бирок ал сатып алган лазердин маркасы SVG файлдарын гана кабыл алат экен. Бул меникиндей көйгөй болчу
Arduino IDEден .hex файлын кантип түзүү керек, Arduino'ду Proteusта тууроо: 3 кадам
Arduino IDEден кантип Generate.hex файлын жасоо керек, Arduino'ду Proteusта тууроо: Бул көрсөтмөлөр сизге proteus+arduino окуу процессине кандайдыр бир жол менен жардам берет деп үмүттөнөм