Obsah:
- Krok 1: Kód
- Krok 2: Toto je kód, NEKOPÍROVAT A VELIKOST
- Krok 3: Pokud z jakéhokoli důvodu nebude kompilován
Video: Vytvoření souboru Matlab MEX: 3 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:24
Pokyny k integraci zkompilovaného kódu C do Matlabu. MEX znamená spustitelný soubor MATLAB. Soubory MEX jsou dynamicky propojené podprogramy vytvořené ze zdrojového kódu C nebo Fortran, které při kompilaci lze spouštět z prostředí MATLAB stejným způsobem jako soubory MATLAB M nebo vestavěné funkce. Funkce externího rozhraní poskytují funkce pro přenos dat mezi soubory MEX a MATLAB a možnost volat funkce MATLAB z kódu C nebo Fortran. Zde vám ukážu vše, co potřebujete k rychlému vytvoření užitečného souboru mex. Co budete potřeba: = textový editor = matlab 6.1 nebo vyšší (dřívější verze umí i soubory mex, ale trochu jiný formát) = matlab má vlastní kompilátor c, který je dodáván s ním, ale použil jsem vizuální kompilátor c ++, protože jsem ho měl.
Krok 1: Kód
stáhněte soubor, který jsem připojil: mextest1p0.cpp
cpp znamená c ++ ……… K tomu slouží kód: ……… trvá číslo, které mu odešlete z příkazového řádku matlab. Vytiskne „ahoj svět“v matlabu, vrátí do matlabu dva argumenty, pole s dvěma prvky a řetězec, první prvek vráceného číselného pole je 1 + číslo, které jste mu poslali, druhý prvek vráceného číselného pole je 2 + číslo, které jste mu poslali ………. Takto ho implementujete: ………… uložte soubor do počítače, spusťte matlab, přejděte v matlabu do adresáře, kde je soubor, a poté postupujte podle pokynů pro kompilaci a spuštění v horní části.cpp soubor. Nemohu zde psát tyto pokyny, protože instructables automaticky upravuje příkazy a způsobuje, že se zobrazují nesprávně. Na obrázku níže vidíte, jak kód funguje. Nebojte se „varování na příkazovém řádku“, zdá se, že to nic neovlivňuje. Všimněte si na levé straně, že aktuální adresář obsahuje soubor.cpp. Vpravo mě můžete vidět kompilovat kód a poté jej spouštět z matlabu. Přečtěte si soubor ve svém textovém editoru (například poznámkový blok ve Windows), je velmi dobře zdokumentovaný a samovysvětlující, budete moci dělat téměř vše, co potřebujete, dodržováním konvencí v kódu (tj. Jeho kopírování a vkládání a vytváření mírné úpravy) ######################################################################## ########################### …….. UPOZORNĚNÍ …….. kvůli nějakým nepříjemným automatickým úpravám, které instructables dělá, kód, jak je vidět na další stránka NEFUNGUJE, MUSÍTE STÁHNOUT SOUBOR, který jsem připojil, místo toho, abyste toto zkopírovali a vložili. ############################################################################# ##########################
Krok 2: Toto je kód, NEKOPÍROVAT A VELIKOST
#############################################################################. PRACUJTE, MUSÍTE STÁHNOUT SOUBOR, který jsem připojil, místo toho, abyste to zkopírovali a vložili. ##################################### ############################################## // Toto v c ++ napsal leevonk // je to kód pro soubor matlab mex // kód převezme jednu číselnou hodnotu a vydá dvě číselné hodnoty // dvě výstupní čísla se vypočítají ze vstupního čísla // kód také vygeneruje hodnotu řetězce // kód bude také vytisknout „hello world“#include „mex.h“void mexFunction (int nlhs, mxArray *plhs , int nrhs, mxArray *prhs ) {// ############### ################################## // #########-tisk „ahoj svět“-### ######### // //############################################### ### mexPrintf („Hello world“); // ######################################### ##### // #########-Získejte věci z Matlabu-########### // ################### ##############################/ * deklarujte proměnnou pole pro uchování příchozích hodnot*/double* InValues;/* získejte hodnoty odeslané z matlabu*/InValues = mxGetPr (prhs [0]);/* pro použití těchto hodnot, které byly odeslány z matlabu, proveďte InValues [0], InValue [1], atd. Podle toho, kolik hodnot existuje. Hodnoty InValues budou použity níže */// ############################################# ## // #########-Vraťte pole čísel-########## // ###################### ###########################/ * deklarujte pole, které bude odesláno do matlabu (* z něj dělá pole) */zdvojnásobte * OutValues;/ * Vytvořit/alokovat návratový argument, matice 1x2 (1 řádek 2 sloupec) pro první slot návratového pole (plhs [0]) */plhs [0] = mxCreateDoubleMatrix (1, 2, mxREAL); / * Získat ukazatel na návratový argument */OutValues = mxGetPr (plhs [0]); / * přiřaďte hodnoty OutValues, které budou umístěny v prvním slotu návratového pole, zde používáme InValues k výpočtu OutValues */OutValues [0] = InValues [0] + 1; OutValues [1] = InValues [0] + 2; // ################################################## // ############-Return a String-############### // #################### ###############################/* deklarujte proměnnou řetězce, která má být odeslána do matlabu*/char* str;/* přiřaďte hodnotu string */str = "byebye";/ *vložte řetězec do druhého slotu návratových polí (plhs [1]) */plhs [1] = mxCreateString (str); // ########### ##################################//###########--vrátit se více věcí-############# // ###################################### ##############/ * Chcete -li vrátit více věcí, řiďte se výše uvedenými obecnými pravidly, ale vložte věci do jiných slotů plhs, plhs [somenumber] */}
Krok 3: Pokud z jakéhokoli důvodu nebude kompilován
Pokud z jakéhokoli důvodu nekompilová (mělo by to fungovat dobře na mém počítači), podívejte se na tyto zdroje, odkud jsem se poučil. Mají malé závady (použijte nějakou starou, nefunkční gramatiku atd.), Ale pokud se mezi nimi pohybujete tam a zpět, měli byste být schopni spojit dohromady něco, co funguje. Https://web.ccr.jussieu.fr/ccr/ Dokumentace/Calcul/matlab5v11/docs/00009/009a1.htmhttps://cnx.org/content/m12348/latest/
Doporučuje:
Vytvoření Pi Zero Dashcam (bod 3): Správa souborů a vylepšení: 3 kroky
Vytvoření Dashcamu Pi Zero (bod 3): Správa a vylepšení souborů: Pokračujeme v projektu palubní kamery Pi Zero a v tomto příspěvku se postaráme o správu souborů a zároveň přidáme některá vylepšení v tomto procesu. Tento projekt je téměř dokončen a v příštím týdnu/videu budeme provádět silniční testy
Správa souborů na kartě Micro SD: 4 kroky
Správa souborů na kartě Micro SD: Techniky správy souborů na kartě SD v tomto pokynu lze použít v projektech, které vyžadují trvalá data, data, která jsou udržována, když je váš projekt vypnutý, a dostupná po opětovném zapnutí. Data jsou také přenosná, protože
Lepší způsob prohlížení/dokumentování souborů na pokynech: 4 kroky
Lepší způsob prohlížení/dokumentování souborů na Instructables: Lidé tam často přidávají soubory projektu prostřednictvím nahrání Instructables. Často se jedná o zdrojové soubory softwaru, které mohou být dokonce tlukoucím srdcem instructable. Ale Instructables nedává čtenáři snadný způsob, jak číst a kontrolovat kód. (
Automaticky odesílat e -maily s fotografií z dávkového souboru pomocí staré plochy a systému XP: 4 kroky
Automaticky odesílat e -maily s fotografií z dávkového souboru pomocí staré plochy a XP: Mám velké štěstí, že mám skvělý výhled z okna domácí kanceláře. Když jsem pryč, chci vidět, co mi chybí, a často jsem pryč. Kdysi jsem měl vlastní webové stránky a domácí meteorologickou stanici, která by přes ftp nahrávala veškeré počasí
Nejlepší technika pro organizaci souborů: 4 kroky
Nejlepší technika pro organizaci souborů: Pro tipy