【问题标题】:List<List<Double>> to double[][] for JAMA or other libsJAMA 或其他库的 List<List<Double>> 到 double[][]
【发布时间】:2013-05-22 10:36:10
【问题描述】:

我无法让我的 List> 加倍 [][] 来处理像 JAMA 这样的线性代数包。 基本上我有一些坐标像这样的列表:

[[2.63, 11.087, -12.054], 
[2.357, 13.026, -15.29], 
[1.365, 16.691, -15.389], 
[0.262, 18.241, -18.694]]

我正在尝试将这些坐标放入JAMA 类,它是 double[][]。 我尝试使用 toArray 方法,但失败了。

double[][] array = list.toArray(new double[list.size()][]);

如何做到这一点?或者是否有其他包来处理我需要的 SVD,使用 List of Lists?

【问题讨论】:

  • 你用什么将List转换为多数组?
  • “怎么做?”我建议尝试这样做。完成此操作后,向我们展示您的尝试
  • 我尝试使用类似double[][] array = list.toArray(new double[list.size()][]);

标签: java list double jama


【解决方案1】:

Guava 有一个Doubles 类,它有一个toArray,它接受一个Collection&lt;? extends Number&gt;,因此将接受一个List&lt;Double&gt; 并转换为一个数组。所以……

List<List<Double>> myList;
double[][] myArray = new double[myList.size()][];
for (int i=0, n<myList.size(); i<n; i++){
     myArray[i] = Doubles.toArray(myList.get(i));
}

【讨论】:

  • 这不起作用,double[][] myArray = new double[myList.size()]; 缺少一个维度,并且在修复 myArray[i] = myList.get(i).toArray(new double[0]);toArray 方法在这里不起作用。
  • 抱歉,上面更新了关于数组创建的内容。 “在这里不起作用”是什么意思?错误是什么?
  • The method toArray(T[]) in the type List&lt;Double&gt; is not applicable for the arguments (double[]) 这是我得到的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-21
  • 1970-01-01
  • 2018-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多