【发布时间】:2020-11-09 11:12:57
【问题描述】:
我有一些带有标题的大型 CSV 文件,其中包含我想加载到矩阵中的值。
我遇到过 LineSplittingParser 类,但找不到关于如何使用它从文件中实际获取 Matrix 对象的好例子。
谁能举一个小例子来说明如何实现这一点?
【问题讨论】:
我有一些带有标题的大型 CSV 文件,其中包含我想加载到矩阵中的值。
我遇到过 LineSplittingParser 类,但找不到关于如何使用它从文件中实际获取 Matrix 对象的好例子。
谁能举一个小例子来说明如何实现这一点?
【问题讨论】:
不确定 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+" 替换为文件中使用的任何分隔符。
【讨论】: