private void init() { int[] dims = matrix.getDimensions(); pack = new int[matrix.getNDimensions()]; pack[0] = 1; for (int i = 1; i < pack.length; i++) { pack[i] = dims[i - 1] * pack[i - 1]; } }
@Test public void testMultipleDimArrayRealWIndicesFromMatlabCreatedFile() throws IOException { int ndims = 5; int[] dims = new int[]{2, 3, 4, 5, 6}; File file = getTestFile("multiDimMatrix.mat"); MatFileReader reader = new MatFileReader(file); MLDouble mlArray = (MLDouble) reader.getMLArray("in"); int testNDims = mlArray.getNDimensions(); Assert.assertEquals(ndims, testNDims); int[] testDims = mlArray.getDimensions(); for (int i = 0; i < ndims; i++) { Assert.assertEquals(dims[i], testDims[i]); } Double expectedVal = 0.0; for (int i = 0; i < dims[4]; i++) { for (int j = 0; j < dims[3]; j++) { for (int k = 0; k < dims[2]; k++) { for (int l = 0; l < dims[1]; l++) { for (int m = 0; m < dims[0]; m++, expectedVal += 1.0) { Double actual = mlArray.get(m, l, k, j, i); Assert.assertEquals(expectedVal, actual); } } } } } }
@Test public void testMultipleDimArrayGetFromMatlabCreatedFile() throws IOException { int ndims = 5; int[] dims = new int[]{2, 3, 4, 5, 6}; File file = getTestFile("multiDimMatrix.mat"); MatFileReader reader = new MatFileReader(file); MLDouble mlArray = (MLDouble) reader.getMLArray("in"); int testNDims = mlArray.getNDimensions(); Assert.assertEquals(ndims, testNDims); int[] testDims = mlArray.getDimensions(); for (int i = 0; i < ndims; i++) { Assert.assertEquals(dims[i], testDims[i]); } Double expectedVal = 0.0; for (int i = 0; i < dims[4]; i++) { for (int j = 0; j < dims[3]; j++) { for (int k = 0; k < dims[2]; k++) { for (int l = 0; l < dims[1]; l++) { for (int m = 0; m < dims[0]; m++, expectedVal += 1.0) { Double actual = mlArray.get(m, l, k, j, i); Assert.assertEquals(expectedVal, actual); } } } } } }
@Test public void testMultipleDimArrayRealFromMatlabCreatedFile() throws IOException { int ndims = 5; int[] dims = new int[]{2, 3, 4, 5, 6}; File file = getTestFile("multiDimMatrix.mat"); MatFileReader reader = new MatFileReader(file); MLDouble mlArray = (MLDouble) reader.getMLArray("in"); int testNDims = mlArray.getNDimensions(); Assert.assertEquals(ndims, testNDims); int[] testDims = mlArray.getDimensions(); for (int i = 0; i < ndims; i++) { Assert.assertEquals(dims[i], testDims[i]); } Double expectedVal = 0.0; for (int i = 0; i < dims[4]; i++) { for (int j = 0; j < dims[3]; j++) { for (int k = 0; k < dims[2]; k++) { for (int l = 0; l < dims[1]; l++) { for (int m = 0; m < dims[0]; m++, expectedVal += 1.0) { Double actual = mlArray.get(mlArray.getIndex(m, l, k, j, i)); Assert.assertEquals(expectedVal, actual); } } } } } }
MLDouble mlArray = (MLDouble) reader.getMLArray("in"); int testNDims = mlArray.getNDimensions(); Assert.assertEquals(ndims, testNDims);
MLDouble mlArray = (MLDouble) reader.getMLArray("in"); int testNDims = mlArray.getNDimensions(); Assert.assertEquals(ndims, testNDims);