Ces programmes devenant lourds, le paquet javasci offre une classe MatrixUtilities, dérivée de Matrix, qui définit à titre d'exemple les quelques méthodes rand, inv, disp, lesquelles font appel à scilabJob. Pour en bénéficier, il faut utiliser MatrixUtilities au lieu de Matrix :
import javasci.MatrixUtilities;
class JavaSciTest {
public static void main(String[] args) {
MatrixUtilities a = new MatrixUtilities("A", 4, 4);
a.rand();
a.disp();
a.inv();
a.disp();
}
}
L'utilisateur de l'interface Java/Scilab qui souhaite faire appel à d'autres fonctionnalités de Scilab est invité à étendre MatrixUtilities ou directement Matrix en définissant les méthodes utilitaires dont il a besoin. Voici, à titre d'exemple, la définition de la classe MatrixUtilities :
package javasci;
public class MatrixUtilities extends Matrix {
public MatrixUtilities(String name, int m, int n)
{
super(name, m, n);
}
public MatrixUtilities(String name, int m, int n, double[] x)
{
super(name, m, n, x);
}
public void inv() {
scilabJob(getName() + "=inv(" + getName() +");");
}
public void disp() {
System.out.println("Matrix "+ getName() +"=");
scilabJob("disp(" + getName() +");");
}
public void rand() {
scilabJob(getName() + "=rand(" + getRow() +"," + getCol() +");");
}
}