Appelez les API MATLAB en C / C ++

Je viens d’entendre dire quelque part que pour le calcul numérique, “MATLAB propose des API conviviales. Si vous appelez ces API dans votre code C / C ++, vous pouvez accélérer considérablement les calculs”.

Mais je n’ai pas trouvé de telles informations dans les documents MATLAB tels que http://www.mathworks.com/support/tech-notes/1600/1622.html et http://www.mathworks.com/access/helpdesk/help/techdoc /matlab_external/bp_kqh7.html . Tout ce que j’ai appris de ces sites Web, c’est que MATLAB peut être appelé en C et C ++ par le moteur Matlab ou en compilant les fichiers M dans des bibliothèques par mcc. Ils ne mentionnent aucune API MATLAB numérique intégrée pouvant être appelée en C / C ++.

Quelqu’un peut-il s’il vous plaît clarifier?

Merci et salutations!

Vous voulez les routines “Engine”. Cela vous permet de démarrer un processus MATLAB en arrière-plan à partir de C et d’exécuter des calculs: documentation pertinente sur MATLAB .

Cela fonctionne assez bien, regardez les exemples. Je dirais que la chose la plus ennuyante à faire fonctionner est de marshaler les données entre C et MATLAB. Mais c’est toujours un problème quand on fait ce genre de chose.

On dirait que vous recherchez les outils de génération de code dans la boîte à outils intégrée matlab ou dans l’atelier en temps réel.

Do doc eml et cherchez la démo de l’égaliseur LMS (carré moyen).

Le générateur de code est assez bon, il vous donnera un fichier make qui construira une bibliothèque statique. Il est facile à utiliser avec votre code C / C ++ autonome.

Il est possible que la citation fasse référence à quelques éléments, je suppose qu’elle fait référence au compilateur MATLAB . Donc, à partir de MATLAB -> C ++, vous pouvez utiliser le compilateur pour créer des applications autonomes “plus rapides”. Cependant, lorsque l’essai de vitesse a été mis à l’essai, j’ai remarqué que c’était négligeable. Honnêtement, il est probablement préférable de coder votre travail en C dès le départ, le code généré par le compilateur étant spaghetti et non orienté object. Je devrais également mentionner qu’il s’agit d’une extension coûteuse à Matlab.

Vous pouvez utiliser le MCR dans votre propre projet c ++ en tant que bibliothèque autonome ( détails ) … mais vous pouvez obtenir des résultats similaires à l’aide de Recettes numériques .

Avertissement: j’ai utilisé ce produit il y a 2-3 ans, les choses pourraient être différentes maintenant.