【发布时间】:2019-05-10 15:40:59
【问题描述】:
我正在尝试将一行附加到预先存在的矩阵。我写了一些代码(如下所示)来解决这个问题,但我不禁觉得有更好的方法来做到这一点(或者也许已经有一个 Apache Commons 函数可以做到这一点???)。
代码
private RealMatrix appendRow(RealMatrix m) {
double[][] mData = m.getData();
double[][] newData = new double[m.getRowDimension()+1][m.getColumnDimension()];
for (int i = 0; i < m.getRowDimension(); i++) {
newData[i] = mData[i];
}
newData[m.getRowDimension()] = new double[m.getColumnDimension()];
return MatrixUtils.createRealMatrix(newData);
}
示例用法和输出
RealMatrix m = MatrixUtils.createRealMatrix(new double[][]{{1,2,3}, {4,5,6}});
Log.i("m", m.toString());
// Array2DRowRealMatrix{{1.0,2.0,3.0},{4.0,5.0,6.0}}
m = appendRow(m);
Log.i("m", m.toString());
// Array2DRowRealMatrix{{1.0,2.0,3.0},{4.0,5.0,6.0},{0.0,0.0,0.0}}
感谢任何提示!
【问题讨论】:
标签: java matrix linear-algebra apache-commons