Obsah:
- Krok 1: Kód
- Krok 2: Toto je kód, NEKOPÍRUJTE a NEPASTE
- Krok 3: Ak sa z akéhokoľvek dôvodu nekompiluje
Video: Vytvorenie súboru Matlab MEX: 3 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:01
Pokyny na integráciu skompilovaného kódu C do programu Matlab. MEX znamená spustiteľný súbor MATLAB. Súbory MEX sú dynamicky prepojené podprogramy vytvorené zo zdrojového kódu C alebo Fortran, ktoré je možné pri kompilácii spustiť z prostredia MATLAB rovnakým spôsobom ako súbory M MATLAB M alebo vstavané funkcie. Funkcie externého rozhrania poskytujú funkcie na prenos údajov medzi súbormi MEX a MATLAB a možnosť volať funkcie MATLAB z kódu C alebo Fortran. Tu vám ukážem všetko, čo potrebujete na rýchle vytvorenie užitočného súboru mex. Čo budete potreba: = textový editor = matlab 6.1 alebo vyšší (staršie verzie môžu robiť aj súbory mex, ale mierne odlišný formát) = matlab má vlastný kompilátor c, ktorý je súčasťou, ale použil som vizuálny kompilátor c ++, pretože som ho mal.
Krok 1: Kód
stiahnite si priložený súbor: mextest1p0.cpp
cpp je skratka pre c ++ ……… K tomu slúži kód: ……… trvá číslo, ktoré mu pošlete z príkazového riadka matlab. Vytlačí "ahoj svet" v matlabe, vráti dva argumenty do matlabu, pole s dvoma prvkami a reťazec, prvý prvok vráteného číselného poľa je 1 + číslo, ktoré ste mu poslali, druhý prvok vráteného číselného poľa je 2 + číslo, ktoré ste mu poslali ………. Takto ho implementujete: ………… uložte súbor do počítača spustite matlab navigujte v matlabe do adresára, kde sa súbor nachádza, potom postupujte podľa pokynov na kompiláciu a spustenie v hornej časti.cpp súbor. Nemôžem sem písať tieto pokyny, pretože inštrukcie automaticky upravujú príkazy a spôsobujú, že sa zobrazujú nesprávne. Na obrázku nižšie vidíte, ako kód funguje. Nerobte si starosti s „upozornením príkazového riadka“, zdá sa, že to nič neovplyvňuje. Všimnite si na ľavej strane, že aktuálny adresár obsahuje súbor.cpp. Vpravo ma môžete vidieť zostavovať kód a potom ho vykonávať z matlabu. Prečítajte si súbor v textovom editore (napríklad poznámkový blok v oknách), je veľmi dobre zdokumentovaný a vysvetľuje sa, že budete môcť urobiť takmer všetko, čo potrebujete, podľa konvencií v kóde (tj skopírujte ho a prilepte a vytvorte mierne úpravy) ####################################################################### ###########################… …….. UPOZORNENIE …….. kvôli niektorým nepríjemným automatickým úpravám, ktoré robí instructables, kód, ako je vidieť na nasledujúca strana NEFUNGUJE, MUSÍTE STIAHNÚŤ SÚBOR, ktorý som priložil, namiesto kopírovania a prilepovania tohto. ###################################################################### ####### ##########################
Krok 2: Toto je kód, NEKOPÍRUJTE a NEPASTE
###################################################################### ####### ###################### … PRÁCU, MUSÍTE SI STIAHNÚŤ SÚBOR, ktorý som priložil, namiesto toho, aby ste to skopírovali a prilepili. ##################################### ############################################# // Toto v c ++ napísal leevonk // je to kód pre súbor matlab mex // kód prevezme jednu číselnú hodnotu a vydá dve číselné hodnoty // dve výstupné čísla sa vypočítajú zo vstupného čísla // kód vygeneruje aj reťazcovú hodnotu // kód vytlačiť aj „ahoj svet“#include „mex.h“neplatná mexFunction (int nlhs, mxArray *plhs , int nrhs, mxArray *prhs ) {// ############### ################################## // #########-vytlačte „ahoj svet“-### ######### // ########################################################################################################################################## ### mexPrintf („Hello world“); // ########################################## ##### // #########-Získajte veci z Matlabu-########### // ################### ###############################/ * deklarujte premennú poľa na uchovávanie prichádzajúcich hodnôt*/double* InValues;/* získajte hodnoty odoslané z matlabu*/InValues = mxGetPr (prhs [0]);/* ak chcete použiť tieto hodnoty, ktoré boli odoslané z matlabu, vykonajte hodnoty InValues [0], InValue [1], a to podľa toho, koľko hodnôt existuje. Hodnoty hodnoty budú použité nižšie */// ############################################# ## // #########-Vráťte pole čísel-########## // ###################### ##########################/ * Vytvoriť/alokovať návratový argument, matica 1x2 (1 stĺpec 2 riadka) pre prvý slot návratového poľa (plhs [0]) */plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL); / * Získať ukazovateľ na návratový argument */OutValues = mxGetPr (plhs [0]); / * priraďte hodnoty OutValues, ktoré budú umiestnené v prvom slote návratového poľa, tu používame InValues na výpočet OutValues */OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // ################################################### ############-Return a String-############### // #################### ###############################/* deklaruje, že reťazcová premenná sa má odoslať do matlabu*/char* str;/* priradiť hodnotu string */str = "byebye";/ *vložte reťazec do druhého slotu návratových polí (plhs [1]) */plhs [1] = mxCreateString (str); // ############ ######################################## ################ ďalšie veci-############# // ###################################### ##############/ * ak chcete vrátiť viac vecí, postupujte podľa vyššie uvedených všeobecných pravidiel, ale vložte ich do iných priestorov, plhs [číslo] */}
Krok 3: Ak sa z akéhokoľvek dôvodu nekompiluje
Ak sa z akéhokoľvek dôvodu nekompilová (malo by to fungovať dobre na mojom počítači), pozrite sa na tieto zdroje, odkiaľ som sa poučil. Majú malé chyby (použite starú, nefunkčnú gramatiku atď.), Ale ak sa medzi nimi budete pohybovať tam a späť, mali by ste byť schopní dať dohromady niečo, čo funguje. Https://web.ccr.jussieu.fr/ccr/ Dokumentácia/Calcul/matlab5v11/docs/00009/009a1.htmhttps://cnx.org/content/m12348/latest/
Odporúča:
Ako rozbiť akýkoľvek počítač pomocou dávkového súboru!: 10 krokov
Ako rozbiť ľubovoľný počítač dávkovým súborom! Ľahko rozbite ľubovoľný počítač alebo prenosný počítač
Hovoriace Arduino - Prehrávanie MP3 s Arduino bez akéhokoľvek modulu - Prehrávanie súboru MP3 z Arduina pomocou PCM: 6 krokov
Hovoriace Arduino | Prehrávanie MP3 s Arduino bez akéhokoľvek modulu | Prehrávanie súboru MP3 z Arduina pomocou PCM: V tomto návode sa naučíme, ako prehrať súbor mp3 s arduino bez použitia akéhokoľvek zvukového modulu, tu použijeme knižnicu PCM pre Arduino, ktorá prehráva 16 -bitový PCM s frekvenciou 8 kHZ, takže to urobíme
Jednoduchý prihlasovací systém dávkového súboru s nakladacou lištou: 5 krokov
Jednoduchý prihlasovací systém Batchfile s lištou načítania: Tu zdieľame dávkový súbor pre prihlasovací systém s lištou načítania. Ukážeme vám kód a tiež vám ukážeme, ako ho používať. Môžete tiež navštíviť náš blog, kde nájdete ďalšie kódy dávkových súborov. FFLocker 1.0: http://errorcode401.blogspot.in/2013/06/FFlocker-1.0.html Rar
Automaticky odosielať e -maily s fotografiami z dávkového súboru pomocou starej pracovnej plochy a systému XP: 4 kroky
Automaticky odosielať e -maily s fotografiou z dávkového súboru pomocou starej pracovnej plochy a systému XP: Mám to šťastie, že mám nádherný výhľad z okna svojej domácej kancelárie. Keď som preč, chcem vidieť, čo mi chýba, a často som preč. Kedysi som mal vlastnú webovú stránku a domácu meteorologickú stanicu, ktorá by nahrávala prostredníctvom ftp všetky informácie o počasí
Ako vytvoriť animovaný GIF z video súboru iba pomocou freewaru: 4 kroky
Ako vytvoriť animovaný GIF z video súboru iba pomocou freewaru: pre tých z vás, ktorí nevedia, je GIF najčastejšie používaným formátom obrazu, ktorý podporuje viac snímok v prezentácii alebo animácii. inými slovami, môžete vkladať krátke videá, kam bežne idú iba obrázky. Chcel som vytvoriť GIF z videoklipu