MATLAB Coder generiert aus MATLAB-Code C und C++ Code für eine Reihe unterschiedlicher Hardwareplattformen, von Desktop-Systemen bis zu Embedded Hardware. Er unterstützt einen Großteil der MATLAB-Sprache und eine große Auswahl von Toolboxen. Sie können den generierten Code als Quellcode, statische Bibliotheken oder dynamische Bibliotheken in Ihre Projekte integrieren. Der generierte Code ist lesbar und plattformunabhängig. Sie können ihn mit zentralen Teilen Ihres bestehenden C und C++ Codes und Bibliotheken kombinieren. Sie können den generierten Code auch als MEX-Funktion zur Verwendung in MATLAB paketieren.
Beim Einsatz mit Embedded Coder bietet MATLAB Coder Code-Anpassungen, zielspezifische Optimierungen, Code-Rückverfolgbarkeit sowie Verifizierung mit Software-in-the-Loop- (SIL) und Processor-in-the-Loop-(PIL).
Um MATLAB-Programme als eigenständig ausführbare Anwendungen bereitzustellen, können Sie MATLAB Compiler verwenden. Zur Generierung von Software-Komponenten, die in andere Programmiersprachen integrierbar sind, steht MATLAB Compiler SDK zur Verfügung.
Jetzt beginnen:
Kostenlose Schnellanleitung für MATLAB Coder
Eignen Sie sich bewährte Praktiken für die Generierung von eigenständigem ANSI-C Quellcode und MEX-Dateien aus Ihrem MATLAB-Algorithmus mithilfe von MATLAB Coder an.
Jetzt loslegenLizenzgebührenfreie Bereitstellung von Algorithmen
Verwenden Sie einen beliebigen C/C++ Compiler, um Ihren generierten Code zu kompilieren und auf jeder beliebigen Hardware auszuführen, von Desktop-Systemen über mobile Geräte bis zu Embedded Hardware. Der generierte Code ist lizenzgebührenfrei – stellen Sie ihn Ihren Kunden für kommerzielle Anwendungen kostenlos zur Verfügung.
Erfolgsberichte zu MATLAB Coder
Erfahren Sie, wie Ingenieure und Wissenschaftler in einer Vielzahl von Branchen MATLAB Coder zur Generierung von C/C++ Code für ihre Anwendungen einsetzen.
Unterstützte Toolboxen und Funktionen
MATLAB Coder generiert Code aus einer vielfältigen Auswahl an MATLAB-Funktionen, die von Entwicklungsingenieuren zur Erstellung von Algorithmen als Komponenten umfangreicher Systeme verwendet werden. Dazu gehören über 2500 Funktionen und Operatoren aus MATLAB und zugehörigen Toolboxen.
Generieren von C++ Code mit Namensräumen
MATLAB Coder kann C++ Code in einem Namensraum erzeugen, wodurch die Integration mit anderem Quellcode, der möglicherweise identische Funktions- oder Datentyp-Namen hat, leicht möglich ist. Der Code Generator paketiert alle generierten Funktionen und Typdefinitionen in den Namensraum.
Generieren von C++ Klassen aus MATLAB-Klassen
MATLAB Coder erzeugt C++ Klassen aus Klassen in Ihrem MATLAB-Code, einschließlich Wertklassen, Handle-Klassen und System Objects. Der generierte Code kann in C++ Bibliotheken oder ausführbare Dateien kompiliert und in Ihren bestehenden C++ Quellcode integriert werden.
Nutzung dynamisch zugewiesener C++ Arrays in erzeugten Funktionsschnittstellen
Generieren Sie C++ Code für MATLAB-Funktionen, die ein Array mit einer Array-Größe akzeptieren oder zurückgeben, welche zur Kompilierungszeit unbekannt ist oder deren Grenze einen vordefinierten Schwellenwert überschreitet. Im generierten Code wird der Speicher für das Array dynamisch zugewiesen und als eine Klassenvorlage namens coder::array
implementiert. Zusätzlich zur ausnahmesicheren Speicherfreigabe bietet coder::array
APIs für den Zugriff auf und die Verwaltung des dynamischen Arrays.
Bereitstellung von End-to-End-Algorithmen für Deep Learning
Bereitstellung einer Vielzahl trainierter Deep Learning-Netze wie ResNet-50 und MobileNet-v2, sowie LSTM und anderer Ebenen von der Deep Learning Toolbox bis Intel® und ARM® Cortex® CPUs. Code für die Vor- und Nachverarbeitung kann mit den trainierten Netzen erzeugt werden, um vollständige Algorithmen zu erhalten.
Optimierten Code für Deep Learning-Inferenz erzeugen
Da der MATLAB Coder nur den Code generiert, der für die Ausführung der Inferenz mit Ihrem spezifischen Algorithmus benötigt wird, ist der Code schneller und verbraucht weniger Speicherplatz, als andere Lösungen für Deep Learning. Der generierte Code ruft optimierte Bibliotheken auf, einschließlich Intel MKL-DNN für Intel-Prozessoren und ARM Compute Library für ARM-Cortex-Prozessoren. Verwenden Sie den GPU Coder, um Algorithmen durch die Generierung von CUDA®-Code, der auf jedem modernen NVIDIA®-Grafikprozessor läuft, zu beschleunigen oder bereitzustellen.
Einsatz von End-to-End-Modellen für Machine Learning
Einsatz von Statistik und Machine Learning-Modellen durch Generieren von C/C++ Code für Ihren gesamten Machine Learning-Algorithmus, einschließlich Vor- und Nachverarbeitung. Aktualisieren von Parametern der eingesetzten Modelle ohne Neugenerierung des C/C++ Prognosecodes.
Erstellung von Prototypen auf Desktop- und Cloud-Plattformen
Verwenden Sie die MATLAB Coder-App oder entsprechende Befehlszeilen-Funktionen, um schnell Code für Ihre Signalverarbeitungs-, Computer Vision-, Deep Learning-, Regelungssystem- oder sonstige Anwendungen zu generieren und um den Code anschliessend für Ihre Hardware zu kompilieren.
Erstellung von Prototypen auf Embedded- und Mobil-Plattformen
Nutzen Sie jedes gewünschte Zielgerät, indem Sie den generierten Code manuell in Ihre Anwendung integrieren. Automatisieren Sie den Prozess für Raspberry Pi mit dem MATLAB Support Package für Raspberry Pi.
Übergang vom Prototyp zur Produktion
Verwenden Sie den MATLAB Coder mit dem Embedded Coder, um Code zu generieren, der prozessorspezifische Instruktionen nutzt. Diese können schneller ausgeführt werden als standardmäßiger ANSI/ISO C oder C++ Code.
Generierung von Code mit einfachen, leicht zu integrierenden Schnittstellen
Der generierte Code verwendet C/C++ Typen auf natürliche Weise und vereinfacht so die Integration in externen Code. Sie können generierten Code als Quellcode oder in Form von Bibliotheken integrieren. Vertrauenswürdige C/C++ Bibliotheken oder ‑Komponenten können zum Testen mit höherer Genauigkeit in MATLAB eingebunden und automatisch auch aus dem generierten Code aufgerufen werden.
Leistungsoptimierung für generierten Code
Nutzen Sie Optimierungen, um Kompromisse zwischen der Ausführungsgeschwindigkeit, der Arbeitsspeichernutzung, der Lesbarkeit und der Plattformunabhängigkeit auszuarbeiten. Verwenden Sie Profiling-Tools, um Engpässe zu identifizieren. Um die Leistung weiter zu erhöhen, generieren Sie Multicore OpenMP-Code und rufen optimierte Bibliotheken wie LAPACK, BLAS und FFTW auf, sofern verfügbar.
Wiederverwenden von MATLAB-Tests für generierten Code vor der Integration
Sie können vorhandene MATLAB-Tests wiederverwenden, um das Verhalten von generiertem Code in der interaktiven MATLAB-Umgebung zu verifizieren. Mit dem MATLAB Unit Testing Framework können Sie schnell einen umfangreichen Satz an Regressionstests entwickeln, mit denen der generierte C Code verifiziert werden kann.
Beschleunigen von Algorithmen auf CPUs
Sie können generierten Code in Form von MEX-Funktionen von Ihrem MATLAB-Code aus aufrufen, um die Ausführung zu beschleunigen. Die Leistung hängt dabei jedoch von Ihrem MATLAB-Code ab. Sie können ein Profiling für generierte MEX-Funktionen durchführen, um Engpässe zu identifizieren und Ihre Optimierungsanstrengungen passend auszurichten.
Beschleunigung der Laufzeit von Algorithmen mit GPUs
Verwenden Sie die Parallel Computing Toolbox, um die Ausführung von Algorithmen in MATLAB zu beschleunigen. Verwenden Sie den GPU Coder, um CUDA-Code zur Beschleunigung oder Bereitstellung zu generieren, der auf jeder modernen NVIDIA GPU läuft.