Inhaltsverzeichnis:
- Schritt 1: Der Code
- Schritt 2: Dies ist der Code, NICHT KOPIEREN UND EINFÜGEN
- Schritt 3: Wenn es aus irgendeinem Grund nicht kompiliert wird
Video: Erstellen einer Matlab MEX-Datei - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:22
Anleitung zur Integration von kompiliertem C-Code in Matlab. MEX steht für MATLAB Executable. MEX-Dateien sind dynamisch verknüpfte Unterroutinen, die aus C- oder Fortran-Quellcode erzeugt werden und nach der Kompilierung in MATLAB auf die gleiche Weise wie MATLAB M-Dateien oder integrierte Funktionen ausgeführt werden können. Die externen Schnittstellenfunktionen bieten Funktionen zum Übertragen von Daten zwischen MEX-Dateien und MATLAB und die Möglichkeit, MATLAB-Funktionen aus C- oder Fortran-Code aufzurufen. Hier zeige ich Ihnen alles, was Sie brauchen, um schnell eine nützliche MEX-Datei zu erstellen Need:= ein Texteditor= Matlab 6.1 oder höher (frühere Versionen können auch Mex-Dateien erstellen, aber ein etwas anderes Format) = Matlab hat einen eigenen C-Compiler, der mitgeliefert wird, aber ich habe einen Visual C++-Compiler verwendet, weil ich ihn hatte.
Schritt 1: Der Code
Laden Sie die Datei herunter, die ich angehängt habe: mextest1p0.cpp
cpp steht für c++ ………Das ist, was der Code macht: ……… es braucht eine Zahl, die Sie von der Matlab-Eingabeaufforderung senden. Es gibt "Hallo Welt" in Matlab aus. Es gibt zwei Argumente an Matlab zurück, ein zweielementiges Zahlenarray und eine Zeichenfolge Das erste Element des zurückgegebenen Zahlenarrays ist 1 + die Zahl, die Sie ihm gesendet haben Das zweite Element des zurückgegebenen Zahlenarrays ist 2 + die Nummer, die Sie gesendet haben ………. So implementieren Sie es: ………… speichern Sie die Datei auf Ihrem Computer Starten Sie Matlab in Matlab navigieren Sie in das Verzeichnis, in dem sich die Datei befindet, folgen Sie dann den Anweisungen zum Kompilieren und Ausführen oben auf der.cpp-Datei. Ich kann diese Anweisungen hier nicht schreiben, weil instructables die Befehle automatisch bearbeitet und sie falsch erscheinen lässt. Im Bild unten sehen Sie, wie der Code funktioniert. Machen Sie sich keine Sorgen über die "Befehlszeilenwarnung", sie scheint nichts zu bewirken. Beachten Sie auf der linken Seite, dass das aktuelle Verzeichnis die.cpp-Datei enthält. Auf der rechten Seite sehen Sie, wie ich den Code kompiliere und dann von Matlab aus ausführe. Lesen Sie die Datei in Ihrem Texteditor (z leichte Modifikationen) ############################################# ######################## …….. HINWEIS…….. wegen einiger lästiger automatischer Bearbeitung, die instructables tut, der Code, wie auf der zu sehen ist nächste Seite FUNKTIONIERT NICHT, SIE MÜSSEN DIE DATEI HERUNTERLADEN, die ich angehängt habe, anstatt sie zu kopieren und einzufügen. ################################################ ######################
Schritt 2: Dies ist der Code, NICHT KOPIEREN UND EINFÜGEN
################################################ #####################…….. HINWEIS……..wegen einiger lästiger automatischer Bearbeitung, die instructables tut, wird der Code, wie er auf dieser Seite zu sehen ist, NICHT ARBEITEN, Sie MÜSSEN DIE DATEI HERUNTERLADEN, die ich angehängt habe, anstatt sie zu kopieren und einzufügen.################################## ####################################### // Dies wurde in c++ von Leevonk geschrieben // es ist Code für eine Matlab-Mex-Datei // der Code nimmt einen Zahlenwert auf und gibt zwei Zahlenwerte aus // die beiden Ausgabezahlen werden aus der eingegebenen Zahl berechnet // der Code gibt auch einen String-Wert aus // der Code wird auch "hello world" ausgeben #include "mex.h"void mexFunction(int nlhs, mxArray *plhs, int nrhs, mxArray *prhs) {//############ ############################# // #######--drucken Sie "Hallo Welt"--### #########//###################################### ###mexPrintf("Hallo Welt"); //###################################### #####//########--Material von Matlab holen--##########//################ ##########################/ * eine Array-Variable deklarieren, die die eingehenden Werte enthält */double* InValues;/* die von Matlab gesendeten Werte abrufen */InValues = mxGetPr(prhs[0]);/* Um diese Werte zu verwenden, die von Matlab gesendet wurden, tun Sie InValues [0], InValue[1] usw. je nachdem, wie viele Werte vorhanden sind. Die InValues werden unten verwendet *///######################################## ##//########--Ein Zahlenfeld zurückgeben--#########//#################### #######################/* deklariere das Array, das an Matlab gesendet wird (das * macht es zu einem Array) */double* OutValues;/ * Rückgabeargument erstellen/zuordnen, eine 1x2 (1 Zeile 2 Spalte) Matrix für den ersten Slot des Rückgabearrays (plhs[0]) */plhs[0]=mxCreateDoubleMatrix(1, 2, mxREAL); /* Hole Zeiger auf das Rückgabeargument */OutValues = mxGetPr(plhs[0]); /* OutValues Werte zuweisen, die sich im ersten Slot des Rückgabearrays befinden, hier verwenden wir die InValues, um die OutValues zu berechnen */OutValues[0] = InValues[0] + 1;OutValues[1] = InValues[0] + 2;//############################################// ###########--Eine Zeichenfolge zurückgeben--############## // ################# ##########################/* deklariere die String-Variable, die an Matlab gesendet werden soll */char* str;/* weise dem einen Wert zu string */str = "byebye";/* setze den String in den zweiten Slot des Rückgabe-Arrays (plhs[1]) */plhs[1]=mxCreateString(str);//########## ##################################//###########--Rückkehr mehr Zeug--############//################################ ############/* Um mehr Sachen zurückzugeben, befolge die allgemeinen Regeln oben, aber stecke die Sachen in andere plhs-Slots, plhs[somenumber] */ }
Schritt 3: Wenn es aus irgendeinem Grund nicht kompiliert wird
Wenn es aus irgendeinem Grund nicht kompiliert wird (sollte es auf meinem Computer gut funktionieren), diese Ressourcen sehen, habe ich von ihnen gelernt. Sie haben kleine Fehler (die Verwendung einer alten, nicht funktionierenden Grammatik usw.), aber wenn Sie zwischen den beiden hin und her wechseln, sollten Sie in der Lage sein, etwas zusammenzubasteln, das funktioniert.https://web.ccr.jussieu.fr/ccr/ Documentation/Calcul/matlab5v11/docs/00009/009a1.htmhttps://cnx.org/content/m12348/latest/
Empfohlen:
Erstellen und Einfügen einer Tabelle und Hinzufügen zusätzlicher Spalten und/oder Zeilen zu dieser Tabelle in Microsoft Office Word 2007 – wikiHow
Erstellen und Einfügen einer Tabelle und Hinzufügen zusätzlicher Spalten und/oder Zeilen zu dieser Tabelle in Microsoft Office Word 2007: Hatten Sie schon einmal viele Daten, mit denen Sie arbeiten, und dachten Sie sich … dieser Daten besser und verständlicher aussehen?" Wenn ja, dann könnte eine Tabelle in Microsoft Office Word 2007 Ihre Antwort sein
So leiten Sie ein USB-Modem zu einer virtuellen VMware ESXi-Maschine um – wikiHow
So leiten Sie ein USB-Modem zu einer virtuellen VMware ESXi-Maschine um: Hallo zusammen! Heute erkläre ich Ihnen, wie Sie ein USB-Modem auf eine virtuelle VMware ESXi-Maschine umleiten. Auf die gleiche Weise können Sie einen Speicherstick und einige andere USB-Geräte umleiten. Diese altbewährte VMware-Funktion hat ihre Vor- und Nachteile, daher haben wir
So installieren Sie ein SSL-Zertifikat auf einer WordPress-Website: 5 Schritte
So installieren Sie das SSL-Zertifikat auf der WordPress-Website: Wir werden eine Anleitung zur Installation des SSL-Zertifikats auf der WordPress-Website teilen. Aber bevor Sie das Zertifikat installieren, müssen Sie einen günstigen SSL-Zertifikatanbieter wie das Comodo SSL-Zertifikat finden
So erstellen Sie mit MATLAB einen Hörtest für Erwachsene – wikiHow
So erstellen Sie einen Hörtest für Erwachsene mit MATLAB: HAFTUNGSAUSSCHLUSS: Unser Test ist KEINE medizinische Diagnose und sollte nicht als solche verwendet werden. Um das Gehör genau zu messen, wenden Sie sich bitte an einen Arzt. Mit Materialien, die wir bereits hatten, führte unsere Gruppe einen Hörtest durch. Unser Test ist nur für Erwachsene und Jugendliche bestimmt
So erstellen Sie ein Greenscreen-Video aus einer App – wikiHow
So erstellen Sie ein Greenscreen-Video aus einer App: In diesem anweisbaren zeige ich Ihnen, wie Sie einen Greenscreen zum Erstellen von Fotos und Videos erstellen und verwenden. Es gibt mehrere Greenscreen-Apps, die Sie verwenden können, um den richtigen Effekt zu erzielen. Benötigte Materialien: Videoaufnahmegerät (könnte iPod, iPad, o