代码之家  ›  专栏  ›  技术社区  ›  tavalendo

如何在Java中创建一个大小为1列的double[][]

  •  0
  • tavalendo  · 技术社区  · 5 年前

    我需要使用apache的RealMatrix在java中计算列和。其工作原理如下:

    import org.apache.commons.math3.linear.RealMatrix;
    import org.apache.commons.math3.linear.MatrixUtils;
    
    double[][] values = {{1.0, 2.0}, {3.0, 4.0}, {5.0, 6.0}};
    RealMatrix matrix = MatrixUtils.createRealMatrix(values);
    
    MatrixUtils.createRealMatrix(new double[][]{{1, 1, 1}}).multiply(matrix)
    >> Array2DRowRealMatrix{{9.0,12.0}}
    

    然而,在申报时,我想概括一下 一个 在里面

    MatrixUtils.createRealMatrix(new double[][]{{1, 1, 1}})
    

    有没有一种方法可以在花括号内预先声明我想要的个数?

    说我想要 numberOfOnes = 10 那么:

    MatrixUtils.createRealMatrix(new double[][]{{1, 1, 1, 1, 1, 1, 1, 1, 1, 1}})
    

    我正在努力寻找一种方法来任命这位将军。有什么帮助吗?

    1 回复  |  直到 4 年前
        1
  •  1
  •   Community CDub    4 年前

    您可以使用 Arrays.fill :

    double[][] m = new double[rows][cols];
    for (int i = 0; i < rows; i++)
        Arrays.fill(m[i], 1.0);
    
        2
  •  0
  •   user15766209 user15766209    4 年前

    您可以使用 Arrays.setAll 分别处理每一行的方法:

    double[][] m = new double[rows][];
    Arrays.setAll(m, i -> {
        double[] row = new double[cols];
        Arrays.fill(row, 1.0);
        return row;
    });
    
    推荐文章