计算二维数组中行的平均值

时间:2015-09-15 17:40:57

标签: java arrays multidimensional-array average

我有这个简单的方法打印二维数组:

public static void printtda() {

    int[][] temps = { {27,28,26,29,30}, {26,25,25,37,40} };

    for (int i=0; i<temps.length; i++) {

        for (int g=0; g< temps[i].length; g++) {

            System.out.print(temps[i][g] +"  ");
        }
        System.out.println();
    }   
}

我现在正在寻找的是打印每行平均值的方法,因此 27,28,26,29,30 26,25的平均值,25,37,40 即可。

任何回复都非常感谢。

2 个答案:

答案 0 :(得分:2)

你应该在循环每个数组时创建一个总和:

In [1]: x = MatrixSymbol('x', 2, 2)

In [2]: P = x**2 - 3*x + 5*eye(2)

In [3]: P
Out[3]: 
                 2
⎡5  0⎤ + -3⋅x + x 
⎢    ⎥            
⎣0  5⎦            

In [4]: A = Matrix([ [1,3], [-1,2] ])

In [5]: P.subs(x, A)
Out[5]: 
                               2
⎡5  0⎤ + -3⋅⎡1   3⎤ + ⎛⎡1   3⎤⎞ 
⎢    ⎥      ⎢     ⎥   ⎜⎢     ⎥⎟ 
⎣0  5⎦      ⎣-1  2⎦   ⎝⎣-1  2⎦⎠ 

In [6]: P.subs(x, A).doit()
Out[6]: 
                   2
⎡2  -9⎤ + ⎛⎡1   3⎤⎞ 
⎢     ⎥   ⎜⎢     ⎥⎟ 
⎣3  -1⎦   ⎝⎣-1  2⎦⎠ 

答案 1 :(得分:1)

您可以使用java 8 IntStream

public static void printtda() {

    int[][] temps = { {27,28,26,29,30}, {26,25,25,37,40} };

    for (int i=0; i<temps.length; i++) {
        for (int g=0; g< temps[i].length; g++) {
            System.out.print(temps[i][g] +"  ");
        }
        double avg = IntStream.of(temps[i]).avarage().getAsDouble();
        System.out.println("The avarage is: " + avg);
        System.out.println();
    }   

}