MATLAB Coder génère du code C et C++ depuis MATLAB pour une variété de plateformes hardware, des PC jusqu'aux systèmes embarqués. Il supporte la plupart du langage MATLAB ainsi qu'un grand nombre de toolboxes. Vous pouvez intégrer le code généré dans vos projets sous forme de code source et de librairies statiques ou dynamiques. Le code généré est lisible et portable. Vous pouvez le combiner avec les composants clés de votre code C et C++ existant ou de vos librairies. Vous pouvez également packager le code généré sous forme de fonction MEX pour l'utiliser dans l'environnement MATLAB.
Utilisé avec Embedded Coder, MATLAB Coder vous permet de personnaliser et d’assurer la traçabilité du code, de l’optimiser pour une cible spécifique et de le vérifier par des tests SIL (software-in-the-Loop) et PIL (processor-in-the-loop).
Pour déployer des programmes MATLAB sous forme d'applications autonomes, utilisez MATLAB Compiler. Pour générer des composants logiciels destinés à une intégration avec d'autres langages de programmation, utilisez MATLAB Compiler SDK.
En savoir plus:
Guide de démarrage rapide gratuit pour MATLAB Coder
Découvrez les bonnes pratiques pour générer du code source ANSI-C autonome et des fichiers MEX à partir de vos algorithmes MATLAB avec MATLAB Coder.
CommencezDéployer des algorithmes libres de droits
Utilisez n'importe quel compilateur C/C++ pour compiler et exécuter votre code généré sur n'importe quelle cible, depuis les PC, smartphones et tablettes, jusqu'au hardware embarqué. Le code généré est libre de droits, vous pouvez donc le déployer gratuitement dans des applications commerciales pour vos clients.
Témoignages clients sur MATLAB Coder
Découvrez comment les ingénieurs et scientifiques de différentes industries utilisent MATLAB Coder pour générer du code C/C++ pour leurs applications.
Toolboxes et fonctions supportées
MATLAB Coder génère du code à partir d'un large éventail de fonctionnalités du langage MATLAB que les ingénieurs utilisent pour développer des algorithmes en tant que composants de systèmes plus importants. Ceci inclut plus de 2500 opérateurs et fonctions MATLAB ainsi que les toolboxes connexes.
Générer du code C++ avec des namespaces
MATLAB Coder peut générer du code C++ dans un namespace, ce qui facilite l'intégration avec d'autres codes sources contenant des noms de fonctions ou types de données identiques. Le générateur de code regroupe toutes les fonctions générées et les définitions de types dans le namespace.
Générer des classes C++ à partir de classes MATLAB
MATLAB Coder génère des classes C++ à partir des classes de votre code MATLAB, notamment des classes de type value, de type handle et des system objects. Le code généré peut être compilé dans des bibliothèques C++ ou des exécutables et intégré dans votre code source C++ existant.
Utiliser des structures C++ allouées dynamiquement dans les interfaces de fonctions générées
Générez du code C++ pour les fonctions MATLAB qui acceptent ou renvoient une structure dont la taille est inconnue au moment de la compilation, ou dont la limite dépasse un seuil prédéfini. Dans le code généré, l'allocation de mémoire pour la structure se fait de manière dynamique et sous la forme d'un modèle de classe nommé coder::array
. En complément de la désallocation de mémoire avec traitement des exceptions, coder::array
propose des API permettant d'accéder à la structure dynamique et de la gérer.
Déployer des algorithmes de Deep Learning de bout en bout
Déployez de nombreux réseaux de Deep Learning entraînés (ResNet-50, MobileNet-v2, LSTM et autres couches) à partir de Deep Learning Toolbox sur des processeurs Intel® et ARM® Cortex®. Générez le code du pré- et post-traitement et de vos réseaux de Deep Learning afin de déployer des algorithmes complets.
Générer du code optimisé pour l'inférence du Deep Learning
L'exécution du code généré est plus rapide et utilise moins de mémoire que les autres solutions de Deep Learning, car MATLAB Coder ne génère que le code nécessaire pour exécuter l'inférence avec votre algorithme spécifique. Le code généré appelle des bibliothèques optimisées, notamment Intel MKL-DNN pour les processeurs Intel et ARM Compute Library pour les processeurs ARM Cortex. Utilisez GPU Coder pour générer du code CUDA® pour accélérer ou déployer les algorithmes, exécutable sur tout GPU NVIDIA® moderne.
Déployer des modèles de Machine Learning de bout en bout
Déployez des modèles de Machine Learning et de statistiques en générant du code C/C++ pour l'ensemble de votre algorithme de Machine Learning, y compris les prétraitements et les post-traitements. Mettez à jour les paramètres des modèles déployés sans regénérer le code C/C++ de la prédiction.
Prototyper sur des plateformes PC et cloud
Utilisez l'application MATLAB Coder ou des fonctions en ligne de commande équivalentes pour générer rapidement du code et le compiler pour votre hardware, quel que soit le type d'application : traitement du signal, Computer Vision, Deep Learning, systèmes de contrôle, etc.
Prototyper sur des plateformes embarquées et mobiles
Ciblez n'importe quel dispositif en intégrant manuellement le code généré à votre application. Automatisez le processus pour Raspberry Pi à l'aide du Support Package MATLAB pour Raspberry Pi.
Du prototypage à la production
Utilisez MATLAB Coder avec Embedded Coder pour générer du code utilisant les intrinsèques propres au processeur et s'exécutant plus rapidement que du code C/C++ ANSI/ISO standard.
Générer du code avec des interfaces simples, faciles à intégrer
Le code généré utilise des types C/C++ de manière naturelle, facilitant l’intégration avec du code externe. Vous pouvez intégrer le code généré sous forme de code source ou de bibliothèques. Pour des tests plus complets, vous pouvez importer des bibliothèques ou des composants C/C+ fiables dans MATLAB qui seront automatiquement appelés à partir du code généré.
Optimiser les performances du code généré
Appliquez des optimisations pour trouver le meilleur compromis entre vitesse d'exécution, utilisation de la mémoire, lisibilité et portabilité. Utilisez des outils de profilage pour identifier les goulots d'étranglement. Pour doper encore les performances, générez du code OpenMP multicœurs et appelez des bibliothèques optimisées telles que LAPACK, BLAS ou encore FFTW le cas échéant.
Réutiliser les tests MATLAB sur le code généré avant l'intégration
Réutilisez vos tests MATLAB existants pour vérifier le comportement du code généré dans l'environnement MATLAB interactif. Mettez à profit l'environnement de tests unitaires MATLAB Unit Test Framework pour développer rapidement un vaste jeu de tests de régression utilisables pour vérifier le code C/C++ généré.
Accélérer les algorithmes sur CPU
Vous pouvez appeler le code généré sous forme de fonctions MEX à partir de votre code MATLAB pour accélérer son exécution. L'accélération observée dépendra de la nature de votre code MATLAB. Vous pouvez profiler les fonctions MEX générées pour identifier les goulots d'étranglement et ainsi cibler vos efforts d'optimisation.
Accélérer les algorithmes avec des GPU
Utilisez Parallel Computing Toolbox pour accélérer les algorithmes exécutés dans MATLAB. Utilisez GPU Coder pour générer du code CUDA pour l'accélération ou le déploiement, exécutable sur tout GPU NVIDIA moderne.