0

我有一个 CSV 文件,其中包含一组对象之间的相关系数矩阵(在下面的示例中,它是四个对象 u101、u102、u103、u104)。这些文件使用对象名称作为行名和列名,如下所示:

        u101,   u102,   u103,   u104
u101,   1.0,    0.2,    0.1,    0.4
u102,   0.2,    1.0,    0.5,    0.8
u103,   0.1,    0.5,    1.0,    0.9
u104,   0.4,    0.8,    0.9,    1.0

我现在需要做的是:将 CSV 文件读入 Java 中的某种矩阵格式,以便我可以按名称访问相关系数。基本上,我需要实现一个功能:

double getValue(String arg0, String arg1) {
    […]
}

调用时

getValue("u101", "u104")

然后该函数应返回 0.4。

我怎样才能做到这一点?

4

2 回答 2

1

您将需要 2 个地图和一个二维数组(或数组列表)。

  • 第一个地图应该包含 col 名称作为键和 col 位置作为值,即 ('u101', 0), ('u102', 1) 等
  • 第二个地图应包含行名称作为键和行位置作为值
  • 二维数组应该有数据,即数字本身

所以当你接到你的方法的电话时,你确实喜欢

return myArray[rowmap.get('rowname')][colmap.get('colname')];
于 2013-04-03T14:32:01.107 回答
0

从文件中读取双精度值:从文件中读取双精度值

然后将您读取的值存储在双精度的 HashMap 中。使用行名和列名构造哈希映射键。要访问 u102 处的元素,u103 执行以下操作:

hashmap.put("u102-u103", 0.5);
x = hashmap.get("u102-u103");
于 2013-04-03T14:30:31.517 回答