我正在尝试计算行和列的平均值。所以,我可以得到列的平均值,但是,我很难计算行的平均值。
我有这样的数据表,
Example1 Example2 Example2
85 75 92
80 91 89
85 52 78
到目前为止我正在做的是将每列作为一个数组:
int[] Example1 = {85, 80, 85};
int[] Example2 = {75, 91, 52};
int[] Example3 = {92, 89, 78};
然后我创建了一个这样的方法(计算表中每列的平均值),
public static void avg_calc(int[] examples) {
int sum = 0;
int avg;
for (int i = 0; i < examples.length; i ++) {
sum += examples[i];
}
avg = sum/examples.length;
System.out.println("Average is " + avg);
}
这样,当我avg_calc(Example1)
时,我可以计算'Example1`数组的平均值,即83.
但是,我想计算Example1
,Example2
和Example3
的平均值,例如,第一行的平均值,即84.
如何在我的函数中添加另一个数组来计算行的平均值?
任何帮助将不胜感激。
答案 0 :(得分:2)
如何在我的函数中添加另一个数组来计算平均值 对于行?
一种方法:
int[] Example1 = {85, 80, 85};
int[] Example2 = {75, 91, 52};
int[] Example3 = {92, 89, 78};
int[][] examples = {Example1, Example2, Example3}; // new array
for (int i = 0; i < examples[0].length; i++) {
double rowAverage = 0;
for (int[] arr : examples) {
rowAverage += arr[i];
}
System.out.println("Average of row " + (i + 1) + ": " + rowAverage / examples.length);
}
<强>输出强>
Average of row 1: 84.0
Average of row 2: 86.66666666666667
Average of row 3: 71.66666666666667
答案 1 :(得分:2)
@alfasin的回答很棒,这是一个java 8解决方案:
public static int getRowAverage(int index, int[]... examples) {
return Arrays.stream(examples)
.mapToInt(ex -> ex[index]).sum() / examples.length;
}
您可以尝试:
public static void main(String[] args) {
int[] example1 = {85, 80, 85};
int[] example2 = {75, 91, 52};
int[] example3 = {92, 89, 78};
// for row 1 (index 0)
int average_row_1 = getRowAverage(0, example1, example2, example3);
System.out.println(average_row_1);
}