Სარჩევი:
- ნაბიჯი 1: კოდი
- ნაბიჯი 2: ეს არის კოდი, ნუ დააკოპირებ და პასტა
- ნაბიჯი 3: თუ რა მიზეზითაც არ არის შედგენილი
ვიდეო: Matlab MEX ფაილის შექმნა: 3 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:20
ინსტრუქცია, თუ როგორ უნდა მოხდეს ინტეგრირებული C კოდის Matlab– თან ინტეგრირება. MEX ნიშნავს MATLAB შესრულებადი. MEX ფაილები არის დინამიურად დაკავშირებული ქვეგადამცემები C ან Fortran კოდისგან, რომლებიც შედგენისას შეიძლება გაშვებული იქნას MATLAB– დან ისევე, როგორც MATLAB M– ფაილები ან ჩაშენებული ფუნქციები. გარე ინტერფეისის ფუნქციები უზრუნველყოფს MEX ფაილებსა და MATLAB– ს შორის მონაცემების გადაცემის ფუნქციებს და MATLAB ფუნქციების გამოძახების შესაძლებლობას C ან Fortran კოდიდან. აქ მე გაჩვენებთ ყველაფერს რაც გჭირდებათ სასარგებლო mex ფაილის სწრაფად შესაქმნელად. გვჭირდება: = ტექსტური რედაქტორი = matlab 6.1 ან ზემოთ (ადრინდელ ვერსიებს შეუძლიათ mex ფაილების გაკეთებაც, მაგრამ ოდნავ განსხვავებული ფორმატი) = matlab– ს აქვს საკუთარი c შემდგენელი, რომელიც მოყვება მას, მაგრამ ვიყენებ ვიზუალურ 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– დან-######### // ################# ##########################/ * გამოაცხადეთ მასივის ცვლადი, რომ შეინარჩუნოს შემომავალი vales*/double* 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 = "bybyye";/ *ჩადეთ სტრიქონი დაბრუნების მასივების მეორე სლოტში (plhs [1]) */plhs [1] = mxCreateString (str); // ########### ##################################//###########--დაბრუნების მეტი პერსონალი-############ // ################################# ############/ * მეტი ნივთების დასაბრუნებლად, დაიცავით ზემოთ მოყვანილი ზოგადი წესები, მაგრამ ჩაყარეთ სხვა plhs slots, plhs [somenumber] */}
ნაბიჯი 3: თუ რა მიზეზითაც არ არის შედგენილი
თუ რაიმე მიზეზით ის არ არის შედგენილი (ეს უნდა იყოს, კარგად მუშაობს ჩემს კომპიუტერში) ნახეთ ეს რესურსები, ისინი იქ არიან, საიდანაც ვისწავლე. მათ აქვთ მცირე ხარვეზები (გამოიყენეთ ძველი, არაფუნქციური გრამატიკა და ა. დოკუმენტაცია/Calcul/matlab5v11/docs/00009/009a1.htmhttps://cnx.org/content/m12348/latest/
გირჩევთ:
Raspberry Pi NFS და Samba ფაილის სერვერი: 11 ნაბიჯი (სურათებით)
Raspberry Pi NFS და Samba ფაილი სერვერი: ეს პროექტი არის საბოლოო ეტაპი, რომელიც აერთიანებს ორ ადრე გაკეთებულ და გამოქვეყნებულ სქემას. *** 1. Raspberry Pi CPU ტემპერატურის მაჩვენებელი-გამოქვეყნებულია 20 ნოემბერი, 2020 https://www.instructables.com/Raspberry-Pi-CPU-Tem…2. ჟოლო პი
მიკრო SD ბარათის ფაილის მართვა: 4 ნაბიჯი
მიკრო SD ბარათის ფაილების მენეჯმენტი: ამ ინსტრუქციის SD ბარათის ფაილის მართვის ტექნიკა შეიძლება გამოყენებულ იქნას პროექტებში, რომლებიც საჭიროებენ მუდმივ მონაცემებს, მონაცემებს, რომლებიც ინახება თქვენი პროექტის გამორთვისას და ხელმისაწვდომია ხელახლა ჩართვისას. ასევე, მონაცემები პორტატულია იმით, რომ
SVG ფაილის ექსპორტი Fusion 360 -ში: 5 ნაბიჯი (სურათებით)
SVG ფაილის ექსპორტი Fusion 360– ში: მეგობარმა ცოტა ხნის წინ შეიძინა ახალი ლაზერული საჭრელი და მკითხა როგორ გამოვიყენო Fusion 360 SVG ფაილების საექსპორტოდ. მე შემოგვთავაზა უბრალოდ ექსპორტი DXF ფაილების ნაცვლად, მაგრამ აღმოჩნდება, რომ მისი შეძენილი ლაზერული ბრენდი იღებს მხოლოდ SVG ფაილებს. ეს იყო იგივე პრობლემა, რაც მე
საუბარი არდუინოზე. - MP3– ის დაკვრა არდუინოსთან ერთად ყოველგვარი მოდულის გარეშე - MP3 ფაილის Arduino– დან დაკვრა PCM– ის გამოყენებით: 6 ნაბიჯი
საუბარი არდუინოზე. | MP3– ის დაკვრა არდუინოსთან ერთად ნებისმიერი მოდულის გარეშე | Arduino– დან Mp3 ფაილის დაკვრა PCM– ის გამოყენებით: ამ ინსტრუქციებში ჩვენ ვისწავლით თუ როგორ ვითამაშოთ arduino– ით mp3 ფაილი აუდიო მოდულის გამოყენების გარეშე, აქ ჩვენ გამოვიყენებთ PCM ბიბლიოთეკას Arduino– სთვის, რომელიც უკრავს 16 ბიტიან PCM– ს 8kHZ სიხშირით, ასე რომ, ამის გაკეთება
დაშიფრული ფაილის მოძრაობა: 7 ნაბიჯი
დაშიფრული ფაილების მოძრაობა: ერთი წლის წინ მე ვიყავი პროექტის ნაწილი. ჩვენ გვჭირდებოდა რამდენიმე მგრძნობიარე ინფორმაციის გადატანა ქვეყნის მასშტაბით. მე გავაანალიზებ რატომ, მოგერიდებათ გამოტოვოთ ნაბიჯი 1. ფონი: ჩემს გუნდს მოკლე დროში დაურეკეს კომპიუტერის აღდგენის მიზნით