Lancer une fonction de MatLab par Java
Bonjour à tous,
Je code actuellement un programme sur Java de traitement de données. Je passe par une fonction codée sur MatLab pour traiter une partie des données.
J'utilise donc matlabcontrol-4.1.0. comme API, et j'ai quelques soucis.
En effet, la fonction a plusieurs arguments, et je veux créer une fonction Java me permettant de rentrer les arguments que je désire, et ensuite que ces arguments soient intégrés à la fonction et celle-ci lancée dans MatLab.
Le problème est que ces arguments sont pour certains des chaînes de caractères, et que pour lancer ma fonction sur MatLab, je dis à Java de rentrer une ligne de commande directement dans MatLab, ligne contenant le nom de la fonction et les arguments.
Voici le script :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
import matlabcontrol.MatlabConnectionException;
import matlabcontrol.MatlabInvocationException;
import matlabcontrol.MatlabProxy;
import matlabcontrol.MatlabProxyFactory;
public class MtCoonect
{
public MtCoonect()
{
super();
}
/*
* Definition of the Eulerian function :
* It is used to convert all the Data files sourced by the Inertial Units into files read by ArtiSynth and the Input probes.
* In order to do that, we use MatLab and througth the Eulerian function, we give
*
*
*/
public static void Eulerian(String[] BASE, NAME, FILE, Int Number)
throws MatlabConnectionException, MatlabInvocationException
{
DATA = "'" + "BASE" + "'";
BASE = "'" + "BASE" + "'";
FILE = "'" + "FILE" + "'";
//Create a proxy, which we will use to control MATLAB
MatlabProxyFactory factory = new MatlabProxyFactory();
MatlabProxy proxy = factory.getProxy();
proxy.isExistingSession ();
// proxy.feval ("Eulerian", Object[DATA,Number, NAME, FILE ] );
//Create the directory and the data files.
//proxy.invocationSucceeded();
//Disconnect the proxy from MATLAB and close MatLab
proxy.exit ();
proxy.disconnect();
}
} |
Mais comme vous pouvez vous en douter, ça ne marche pas trop.
Un exemple de la commande à retrouver sur MatLab est :
Code:
1 2
|
Eulerian('DATA', 8,'Marc','Test') |
J'aimerais donc de l'aide pour savoir comment pouvoir appeler ma fonction dans MatLab en pouvant faire varier les arguments de la fonction, bien que ce soient des chaînes de caractères et des nombres.
En espérant que vous pourrez m'aider, et merci d'avoir lu mon post,
GaTaLek