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 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
|
package javasci ;
/********************************************************************************************************/
/* Allan CORNET */
/* INRIA 2005 */
/********************************************************************************************************/
public class SciDoubleArray implements java.io.Serializable
{
/********************************************************************************************************/
private double [] x ;
private int m, n;
/* m number of rows */
/* n number of colons */
private String name;
/********************************************************************************************************/
private static native void Initialize();
/**
* Initialize Scilab interface
*/
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");
Initialize();
}
/********************************************************************************************************/
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() +");");
}
}
/********************************************************************************************************/
|