我有一些大的头CSV文件,其中包含我想要加载到Matrix中的值。
我遇到过LineSplittingParser类,但是找不到关于如何使用它从文件中实际获取Matrix对象的好例子。
有没有人能举个小例子说明如何做到这一点?
发布于 2020-11-09 20:08:24
我不确定LineSplittingParser是否是读取矩阵的好方法,但下面这样的代码可能会起作用:
File fileToParse = null;
// You have to know the number of rows and columns
int numRows = 9, numCols = 9;
Primitive64Store matrix = Primitive64Store.FACTORY.make(numRows, numCols);
LineSplittingParser parser = new LineSplittingParser("\\s+", true);
AtomicInteger row = new AtomicInteger();
boolean skipHeader = true;
parser.parse(fileToParse, skipHeader, line -> {
int i = row.intValue();
for (int j = 0; j < line.length; j++) {
matrix.set(i, j, Double.parseDouble(line[j]));
}
row.incrementAndGet();
});这段代码没有经过测试--它只是一个大纲--您必须用文件中使用的任何分隔符替换"\\s+"。
https://stackoverflow.com/questions/64750549
复制相似问题