Apache Commons Math:如何沿行/列求和?

时间:2018-09-02 05:54:16

标签: java apache-commons-math

我是Apache Common Math的新手,所以请原谅一些琐碎的问题。

基于API doc,我无法弄清楚如何执行按列或按行求和。

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 mtx = MatrixUtils.createRealMatrix(values);

上面的代码生成如下矩阵:

[[1, 2],
 [3, 4],
 [5, 6]]

执行按列求和的正确语法是什么?这会给我:

[9, 12]

如何执行按行求和?这会给我:

[3,
 7,
 11
]

为进行比较,下面是Scala的Breeze库中的语法:

import breeze.linalg._
val mtx = DenseMatrix((1.0, 2.0), (3.0, 4.0), (5.0, 6.0))

// sum along the column direction
sum(mtx(::, *))
// Transpose(DenseVector(9.0, 12.0))


// sum along the row direction
sum(mtx(*, ::))
// DenseVector(3.0, 7.0, 11.0)

1 个答案:

答案 0 :(得分:1)

似乎没有简单的方法可以做到这一点,如何生成 ones矩阵来进行 sum ?,例如:

val formatrecord = records.map(fromJson[mapClass](_))