2010-01-18 8 views
0

J'écris une application Java qui doit être capable d'exécuter des commandes MATLAB. Pour ce faire, j'utilise un programme C que l'application Java peut appeler pour s'interfacer avec MATLAB. Cependant, même après avoir recherché le moteur MATLAB, je n'arrive pas à comprendre comment compiler le programme C. Cette documentation semble compiler le programme C à partir de MATLAB: http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_external/f39903.html. Est-il possible de compiler à partir de la ligne de commande? C'est-à-dire, puis-je utiliser gcc avec certains drapeaux pour inclure tout le support MATLAB pertinent (je ne programme habituellement pas en C, donc désolé si ma langue n'est pas exactement correcte!)Appel de MATLAB à partir de C

Merci!

Répondre

0

Peut-être que vous voulez faire ce qui suit:

1) compiler votre code Matlab (i.e. fichiers m) avec le compilateur Matlab mcc de la ligne de commande Matlab. compilateur mcc génère c dll. Le matlab généré c dll contient l'interface c pour les fichiers matlab m. Voir le lien suivant sur la façon de générer c dll à partir de fichiers matlab M. C Shared Library Target

2) Ecrire c dll qui utilise la DLL de Matlab généré à l'étape 1. Compiler la DLL de c avec c compiler.See le lien suivant sur la manière d'appeler les fonctions qui sont à l'intérieur de la dll MATLAB Compiler Generated Interface Functions

généré Matlab

3) Utilisez le dll généré à l'étape 2 avec java.

+0

si vous voulez utiliser c exe autonome au lieu c dll voir le lien suivant http://www.mathworks.com/access/helpdesk/help/toolbox/compiler/f7-996249.html – user152508

+0

Merci pour les liens! Je vais essayer cette méthode et voir si je rencontre des problèmes. Merci! –

0

Je ne me Matlab, mais je devine que vous devez faire quelque chose comme ceci:

  1. compilez votre programme C avec les bibliothèques Matlab pour créer une bibliothèque partagée que Java peut utiliser.
  2. Écrivez une interface JNI qui appelle votre bibliothèque partagée, en veillant à lier dans votre nouveau SO et tous ceux de MATLAB dont vous avez besoin.

Divisez le problème en plusieurs étapes et réglez-le.

+0

Je pense que ce que je voudrais faire est d'avoir un programme C exécutable. Mon application Java peut alors appeler ce programme C et transmettre des arguments via la ligne de commande. J'ai donc besoin d'aide avec l'étape (1), la compilation actuelle de C en exécutable. –

1

Vous pouvez compiler votre code normalement comme vous le feriez pour un programme C normal, mais vous devez spécifier les dépendances correctement. La meilleure façon de faire est d'utiliser l'utilitaire CMake avec un fichier CMakelists.txt. Maintenant, une démo sur la façon d'écrire le CMakeLists.txt est donné here et comment interfacer C/C++ avec Matlab est donné here. J'espère que cela aide ....

Questions connexes