如何创建一个包含一列的二维双数组
How to create a 2D double array with column of ones
我需要使用 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 时使其通用化
MatrixUtils.createRealMatrix(new double[][]{{1, 1, 1}})
有没有办法在大括号内预先声明我想要的数量?
说我想要numberOfOnes = 10
,那么:
MatrixUtils.createRealMatrix(new double[][]{{1, 1, 1, 1, 1, 1, 1, 1, 1, 1}})
我正在努力寻找一种方法来制作这个将军。有帮助吗?
您可以使用 Arrays.fill
:
double[][] m = new double[rows][cols];
for (int i = 0; i < rows; i++)
Arrays.fill(m[i], 1.0);
您可以使用Arrays.setAll
方法分别处理每一行:
double[][] m = new double[rows][];
Arrays.setAll(m, i -> {
double[] row = new double[cols];
Arrays.fill(row, 1.0);
return row;
});
我需要使用 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 时使其通用化MatrixUtils.createRealMatrix(new double[][]{{1, 1, 1}})
有没有办法在大括号内预先声明我想要的数量?
说我想要numberOfOnes = 10
,那么:
MatrixUtils.createRealMatrix(new double[][]{{1, 1, 1, 1, 1, 1, 1, 1, 1, 1}})
我正在努力寻找一种方法来制作这个将军。有帮助吗?
您可以使用 Arrays.fill
:
double[][] m = new double[rows][cols];
for (int i = 0; i < rows; i++)
Arrays.fill(m[i], 1.0);
您可以使用Arrays.setAll
方法分别处理每一行:
double[][] m = new double[rows][];
Arrays.setAll(m, i -> {
double[] row = new double[cols];
Arrays.fill(row, 1.0);
return row;
});