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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
package javasci ;
/********************************************************************************************************/
/* Allan CORNET */
/* INRIA 2005 */
/********************************************************************************************************/
public class SciDoubleArray
{
/********************************************************************************************************/
private double [] x ;
private int m, n;
/* m number of rows */
/* n number of colons */
private String name;
/********************************************************************************************************/
public native boolean Job(String job);
/* Execute a command in Scilab */
public native void Get();
/* Get Matrix from Scilab*/
public native void Send();
/* Send Matrix to Scilab */
public native double GetElement(int indr, int indc);
/* Get only ONE element from Scilab Matrix */
/* indr AND indc are indices in scilab */
/* in Scilab A=[1,2;3,4];
/* A(1,1)=1 */
/* A(2,2)=4 */
/* See SCI/examples/callsci/callsciJava/others for some simple examples */
/********************************************************************************************************/
static
{
System.loadLibrary("javasci");
}
/********************************************************************************************************/
public SciDoubleArray(String name,SciDoubleArray Obj)
{
this.name = name;
this.m = Obj.getRow() ;
this.n = Obj.getCol();
this.x = new double[m*n];
this.x =Obj.getData() ;
Send();
}
/********************************************************************************************************/
public SciDoubleArray(String name,int r,int c)
{
this.m = r ;
this.n = c ;
this.x = new double[r*c];
this.name = name;
for ( int i = 0 ; i < r*c ; i++)x[i]=0;
Send();
}
/********************************************************************************************************/
public SciDoubleArray(String name,int r,int c,double [] x )
{
if ( r*c != x.length)
{
throw new BadDataArgumentException("Bad Matrix call, size of third argument is wrong");
}
this.m = r ;
this.n = c;
this.x = x;
this.name = name;
Send();
}
/********************************************************************************************************/
public int getRow()
{
return m;
}
/********************************************************************************************************/
public int getCol()
{
return n;
}
/********************************************************************************************************/
public String getName()
{
return name;
}
/********************************************************************************************************/
public double[] getData()
{
Get();
return x;
}
/********************************************************************************************************/
public void disp()
{
Get();
System.out.println("Matrix "+ getName() +"=");
Job( "disp(" + getName() +");");
}
}
/********************************************************************************************************/
|