import edu.indiana.soic.spidal.common.BinaryReader2D;
import edu.indiana.soic.spidal.common.Range;
import edu.indiana.soic.spidal.common.TransformationFunction;
import java.nio.ByteOrder;
public class MatrixReader {
private String file;
private int cols;
int rows;
short [][]values;
public MatrixReader(String file, int cols, int rows) {
this.file = file;
this.cols = cols;
this.rows = rows;
readValues();
}
private void readValues() {
values = BinaryReader2D.readRowRange(file, new Range(0, rows - 1), cols, ByteOrder.BIG_ENDIAN, false, new TransformationFunction() {
@Override
public double transform(double val) {
return val;
}
});
}
public double read(int row, int col) {
return ((double)values[row][col])/ Short.MAX_VALUE;
}
}