【问题标题】:How can I create 1000000 x 1000000 sparse matrix using Java Colt?如何使用 Java Colt 创建 1000000 x 1000000 稀疏矩阵?
【发布时间】:2014-12-10 20:47:56
【问题描述】:
public class SparseMatrix
{       
     static SparseObjectMatrix2D matrix = new SparseObjectMatrix2D(1000000, 1000000);

     public static void main(String[] args)
     {
            matrix.set(1, 2, 3.0);
     }      
}

这是我得到的错误:

java.lang.ExceptionInInitializerError Caused by:
java.lang.IllegalArgumentException: matrix too large at
cern.colt.matrix.impl.AbstractMatrix2D.setUp(Unknown Source) at
cern.colt.matrix.impl.AbstractMatrix2D.setUp(Unknown Source) at
cern.colt.matrix.impl.SparseObjectMatrix2D.<init>(Unknown Source) at
cern.colt.matrix.impl.SparseObjectMatrix2D.<init>(Unknown Source) at
SparseMatrix.<clinit>(SparseMatrix.java:18) Exception in thread "main"

【问题讨论】:

  • 请发布您收到的错误消息。
  • 其实请ask a question
  • 也不要在回复评论中发布代码,请使用详细信息更新您的帖子。
  • matrix too large - 它可能太大了。毕竟,您正在创建一个 1 trillion 单元矩阵。
  • 也许它太大了,因为它说它太大了。

标签: java matrix sparse-matrix colt


【解决方案1】:

你不能。来自documentation

抛出:
IllegalArgumentException - 如果是rows&lt;0 || columns&lt;0 || &gt; (double)columns*rows &gt; Integer.MAX_VALUE

不是创建一个使用 x 和 y 坐标寻址的矩阵,而是返回一个 Value,而是创建一个 HashMap&lt;Coordinates, Value&gt;,其中 Coordinates 是一个包含 x 和 y 的简单类。

【讨论】:

    猜你喜欢
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    • 2012-01-10
    • 2017-03-31
    • 1970-01-01
    • 2011-03-23
    相关资源
    最近更新 更多