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
|
package javasci ;
/********************************************************************************************************/
/* Allan CORNET */
/* INRIA 2006 */
/********************************************************************************************************/
public class SciStringArray
{
/********************************************************************************************************/
private String [] x ;
private int m, n;
private String name;
/********************************************************************************************************/
public native boolean Job(String job);
/* Execute a command in Scilab */
public native String GetElement(int indr, int indc);
private native void SendString(String str,int indr, int indc);
/* See SCI/examples/callsci/callsciJava/others for some simple examples */
/********************************************************************************************************/
static
{
System.loadLibrary("javasci");
}
/********************************************************************************************************/
public SciStringArray(String name,SciStringArray Obj)
{
this.name = name;
this.m = Obj.getRow() ;
this.n = Obj.getCol();
this.x = new String[m*n];
this.x =Obj.getData() ;
Send();
}
/********************************************************************************************************/
public SciStringArray(String name,int r,int c)
{
this.m = r ;
this.n = c ;
this.x = new String[r*c];
this.name = name;
for ( int i = 0 ; i < m*n ; i++) x[i]="";
Send();
}
/********************************************************************************************************/
public SciStringArray(String name,int r,int c,String [] 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 String[] getData()
{
Get();
return x;
}
/********************************************************************************************************/
public void Get()
{
int indr, indc;
for(indr=1;indr<=m;indr++)
{
for(indc=1;indc<=n;indc++)
{
x[(indc-1)*m+(indr-1)]=GetElement(indr,indc);
}
}
}
/********************************************************************************************************/
public void Send()
{
int indx, indy;
for(indx=0;indx<m;indx++)
{
for(indy=0;indy<n;indy++)
{
SendString(x[indx+indy*m],indx,indy);
}
}
}
/********************************************************************************************************/
public void disp()
{
Get();
System.out.println("Matrix "+ getName() +"=");
Job( "disp(" + getName() +");");
}
}
/********************************************************************************************************/
|