next_inactive up previous


Interface Java/Scilab

J.Ph. Chancelier1

L'interface Java/Scilab repose sur la classe Matrix du paquet javasci et sur une bibliothèque native libjavasci.so. Elle permet de transmettre des instructions à Scilab et d'échanger des données entre Java et Scilab ; ces données sont des matrices pleines.

Il faut dire où se trouve la bibliothèque libjavasci.so, en exécutant la commande suivante :

setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/usr/local/eleves/scilab-2.6-lib

On notera qu´en fait cette commande est déjà présente dans les fichiers de configuration des élèves et il est donc inutile de la taper.

Installation

Sauvegardez le fichier d'archives MatrixUtilities on suivra le lien suivant : javasci.tgz dans votre répertoire ~/info/classes, placez-vous dans ce répertoire et extrayez les fichiers de classe qu'il contient au moyen de :

  tar zxvf javasci.tgz

Ceci crée un répertoire javasci sous ~/info/classes, qui contient les fichiers de classe nécessaires.

Fonctionnalités

Pour accéder à la documentation des fonctionnalités des classes Matrix et MatrixUtilities, on suivra le lien suivant : Matrix et MatrixUtilities.

Exemple un

 
import javasci.* ; 

class  TestMatrix {

  public static void main(String[] args) {
    // creation d'une matrice 4x4 
    MatrixUtilities a = new MatrixUtilities("A",4,4);
    // on la remplit aléatoirement (loi uniforme sur (0,1)).
    a.rand();
    // display Scilab de la matrice. 
    a.disp();
    MatrixUtilities b = new MatrixUtilities("B",2,2, new double [] {1,2,3,4} );
    b.disp();
    // calcul de l'inverse 
    b.inv();
    b.disp();
    MatrixUtilities v = new MatrixUtilities("Void",0,0);
    v.disp();
    // Attention aux ' il faut les doubler
    // on fait executer une instruction Scilab 
    Matrix.scilabExec("write(%io(2),''coucou'')");
    MatrixUtilities h = new MatrixUtilities("H",2,2, new double [] {1,2,3,4} );
    // on envoit h a Scilab 
    h.scilabSend();
    // on fait executer une instruction Scilab 
    Matrix.scilabExec("disp(H)");
    // un peu de dessin 
    double  x[] = new double[10]; 
    double  y[] = new double[x.length]; 
    for ( int i= 0 ; i < x.length  ; i++ ) 
      {
	x[i]= (double) i; 
	y[i]= Math.sin((double) i);
      }
    Matrix mx = new Matrix("x",1,x.length,x); 
    Matrix my = new Matrix("y",1,y.length,y); 
    mx.scilabSend();
    my.scilabSend();
    Matrix.scilabExec("plot(x,y);halt();");
  }
}

Exemple deux

 
import javasci.* ; 

class  TestMatrix1 {

  public static void main(String[] args) {
  
    MatrixUtilities a = new MatrixUtilities("A",2,2,new double [] {1,2,3,4});
    MatrixUtilities b = new MatrixUtilities("B",2,2,new double [] {5,6,7,8});
    MatrixUtilities x = new MatrixUtilities("X",1,2);
    a.scilabSend();
    b.scilabSend();
    Matrix.scilabExec("C=A*B;");
    // on suppose qu'on ne connait pas la  taille de C ? 
    // on la demande a Scilab 
    x.scilabJob("X=size(C);");
    double xv[]= x.getData();
    MatrixUtilities c = new MatrixUtilities("C",(int) xv[0],(int) xv[1]);
    c.scilabGet();
    double val[]= c.getData();
    for ( int i=0 ; i < val.length ; i++) 
      System.out.println("val " + i + "=" + val[i]); 
    c.disp(); 
  }
}

À propos de ce document...

Interface Java/Scilab

This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.47)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -split 0 javascilab.tex

The translation was initiated by Jean-Philippe Chancelier on 2001-11-07


Notes

... Chancelier1
Cermics, École Nationale des Ponts et Chaussées, 6 et 8 avenue Blaise Pascal, 77455, Marne la Vallée, Cedex 2

next_inactive up previous
Jean-Philippe Chancelier 2001-11-07