【问题标题】:How to create a 2D double array with column of ones如何创建具有一列的二维双精度数组
【发布时间】:2020-07-21 14:38:07
【问题描述】:

我需要使用 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}}

但是,在声明 ones in

时,我想把它概括一下
MatrixUtils.createRealMatrix(new double[][]{{1, 1, 1}})

有没有办法在大括号内预先声明我想要的数量?

说我想要numberOfOnes = 10,然后:

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

我正在努力寻找一种方法来概括这一点。有什么帮助吗?

【问题讨论】:

    标签: java matrix vector matrix-multiplication


    【解决方案1】:

    你可以使用Arrays.fill:

    double[][] m = new double[rows][cols];
    for (int i = 0; i < rows; i++)
        Arrays.fill(m[i], 1.0);
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多