Question

Après avoir jeté un coup d’œil sur Internet, il semble qu’il soit possible d’interopérer entre C # et Matlab. Je me demande si quelqu'un a eu du succès avec cela et ce qu'ils ont fait pour le faire. Si possible en quelque sorte le faire sans l'utilisation de COM. Merci pour votre temps.

Était-ce utile?

La solution

Oui, tout à fait possible. Bien que j'ai fini par utiliser l’interface C et d’appeler dans celle-ci à l’aide d’une DLL en mode mixte (et d’obtenir l’appel en C # ... mais c’est parce que j’interfaisais également avec un autre code C). C'est assez simple. Sur les ordinateurs sur lesquels vous souhaitez exécuter votre programme, vous devez installer Matlab Runtime MCRInstaller.exe.

modifier: lien brisé supprimé

Autres conseils

À partir de la version R2009a de MATLAB, vous pouvez accéder aux objets .NET à partir de MATLAB:

http://www.mathworks.com/help/techdoc/matlab_external/ brpb5k6.html

Dans les anciennes versions de MATLAB, il est possible d'accéder aux objets .NET à partir de MATLAB à l'aide de CCW:

http: //www.mathworks. com / support / solutions / data / 1-5U8HND.html? solution = 1-5U8HND

et le moteur MATLAB de .NET:

http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/matlab_external/f135590.html#f135616

Vous pouvez également utiliser le NE MATLAB Builder pour insérer du code m dans des assemblys .NET.

http://www.mathworks.com/products/netbuilder/

Oui, j'ai réussi à le faire et c'était surtout sans douleur.

Vous devez compiler votre code MATLAB pour .NET (comme expliqué dans les réponses précédentes), lancer le programme d'installation de MCR, référencer MWArray.dll et le code dll conforme dans votre projet .NET, et le tour est joué.

Le seul inconvénient était le casting (et parfois plusieurs castings!) que l'interface vous impose (en utilisant explicitement les opérateurs de casting)

Il existe un wrapper .NET source libre et gratuit pour Matlab, et il est très simple: http://www.codeproject.com/KB/dotnet/matlabeng.aspx

Je l'utilise.

Dans la pré-version du R2009a, vous pouvez appeler des assemblys .net à partir de MATLAB.

Je ne sais pas dans quelle mesure cela s'applique à vous, mais essayez de regarder dans les exécutables matlab ou MEX En résumé, il est très facile d’écrire un programme en C ou en Fortran, d’inclure quelques bibliothèques et fonctions, puis de pouvoir utiliser votre fonction C ou en Fortran dans matlab

Si vous êtes prêt à dépenser de l'argent, c'est ce dont vous avez besoin:

http://www.mathworks.com/products/netbuilder/

Il peut générer des wrappers pour le code Matlab lui permettant d'être appelé à partir de .NET et de COM.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top