Я пытаюсь добавить строку в уже существующую матрицу. Я написал некоторый код (показанный ниже), который делает свое дело, но я не могу не почувствовать, что есть лучший способ сделать это (или, возможно, уже есть функция 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}}
Любые советы приветствуются!