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 :
Mais comme vous pouvez vous en douter, ça ne marche pas trop.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); } }
Un exemple de la commande à retrouver sur MatLab est :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Eulerian('DATA', 8,'Marc','Test')
En espérant que vous pourrez m'aider, et merci d'avoir lu mon post,
GaTaLek
Partager