获取矩阵的单个列的总和

时间:2014-04-17 13:31:29

标签: java arrays matrix

创建矩阵后。如何在columnSum方法中单独对列进行求和,并返回带有这些求和的另一个数组?

public class ColumnSum {
    public static void main(String []args){
        int [][]matrix = { {4, 5, 9, 1, 6},{5, 6, 1, 2, 0}, {6, 8, 4, 4, 2} };
        int [] vector = columnSum(matrix);
        for (int i=0; i<vector.length; i++){
            System.out.println(vector[i]+ " ");
        }
            System.out.println();
    }
    public static int[] columnSum(int a [][]){
        for(int i=0; i<a.length; i++){
            for(int p=0; p< a[i].length; p++)   {

            }
        }
    }
}

我一直在尝试创建一个数组,但我不确定如何添加列并将它们存储到一个数组中。

3 个答案:

答案 0 :(得分:0)

试试这个:

public static int[] columnSum(int a [][]){
    int rows = a.length;
    int cols = a[0].length;
    int[] result = new int[cols];
    for(int p=0; p < cols; p++){
        int tmp = 0;
        for(int i=0; i<rows; i++)
            tmp += a[i][p];
        result[p] = tmp;
    }
    return result;
}

答案 1 :(得分:0)

您需要创建一个列长度的向量,然后通过逐列遍历来总结。

public static int[] columnSum(int a [][]){
        int ln = a[0].length;
        int[] result = new int[ln];
        for(int i=0; i<ln; i++){
            int tmp = 0;
            for(int p=0; p< a.length; p++)   {
                tmp += a[p][i];
            }
            result[i] = tmp;
        }
        return result;
    }

答案 2 :(得分:0)

我猜这是某种功课,所以这里有一些伪代码:

int[] result = new int[no. columns]

for (i = 1 to number of columns) {
  int sum = 0; 

  for (j = 1 to number of rows) {
    sum += data[column, row]
  }

  result[i] = sum
}