From: Michael G. <gof...@us...> - 2007-06-21 22:04:22
|
Update of /cvsroot/octave/octave-forge/extra/java/src/org/octave In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv8671/src/org/octave Modified Files: Matrix.java Log Message: add convenience constructors Index: Matrix.java =================================================================== RCS file: /cvsroot/octave/octave-forge/extra/java/src/org/octave/Matrix.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Matrix.java 21 Jun 2007 21:56:49 -0000 1.2 +++ Matrix.java 21 Jun 2007 22:04:20 -0000 1.3 @@ -31,6 +31,38 @@ this(data, new int[] {1, data.length}); } + public Matrix(double[][] data) + { + int m = data.length; + int n = (m > 0 ? data[0].length : 0); + int idx = 0; + double[] buf = new double[m*n]; + + for (int j=0; j<n; j++) + for (int i=0; i<m; i++) + buf[idx++] = data[i][j]; + this.data = DoubleBuffer.wrap(buf); + this.dims = new int[] {m, n}; + this.cache = data; + } + + public Matrix(double[][][] data) + { + int m = data.length; + int n = (m > 0 ? data[0].length : 0); + int p = (n > 0 ? data[0][0].length : 0); + int idx = 0; + double[] buf = new double[m*n*p]; + + for (int k=0; k<p; k++) + for (int j=0; j<n; j++) + for (int i=0; i<m; i++) + buf[idx++] = data[i][j][k]; + this.data = DoubleBuffer.wrap(buf); + this.dims = new int[] {m, n, p}; + this.cache = data; + } + public Matrix(double[] data, int[] dims) { this.dims = dims; |