矩阵中的Sum元素

时间:2018-04-17 05:22:19

标签: java matrix

我试图将矩阵中单行的所有元素相加,我很确定这会输出一条错误消息(索引超出范围),因为我之前在Python中总是犯这个错误。我想在循环中总结元素! (这个矩阵有一列和一行X行。抱歉,我没有澄清)

public class cls_ejercicio7_d {
    private int tamaño;
    private String[] lista_nombres;
    private double[][] lista_kilometraje;

    public cls_ejercicio7_d(int tamaño, String lista_nombres[], double lista_kilometraje[][]) {
        this.lista_kilometraje = lista_kilometraje;
        this.lista_nombres = lista_nombres;
        this.tamaño = tamaño;
    }

    public double[][] resultados(int tamaño, String lista_nombres[], double lista_kilometraje[][]) {
        double total;
        double[][] lista_totales = new double[tamaño][1];
        for (int i = 0; i < tamaño; i++) {
            for (int j = 0; j < tamaño; j++) {
                total = lista_kilometraje[i][j] + lista_kilometraje[i][j + 1];
                lista_totales[i][j] = total;
            }
        }
        return lista_totales;
    }
}

3 个答案:

答案 0 :(得分:1)

而不是

 double [][]lista_totales=new double[tamaño][1];

 double [][]lista_totales=new double[tamaño][tamaño];

 for (int j = 0; j < tamaño; j++) {
                total+=lista_kilometraje[i][j];
            }
            lista_totales[i][1]=total;

答案 1 :(得分:1)

错误来自这一行:

总= lista_kilometraje [i] [j] + lista_kilometraje [i] [j + 1];

您正在j+1。假设你的矩阵有8列,那么对于这一列,它将尝试检索j[8]这是错误的,因为J只有索引7.

也是lista_totales = [tamaño][1]

的大小

lista_totales[i][j]也会抛出异常。

您可能想要更改为以下内容:

public double [][] resultados(int tamaño,String lista_nombres[],double lista_kilometraje[][]){
    double total;
    double [][]lista_totales=new double[tamaño][1];
    for (int i = 0; i < tamaño; i++) {
        total = 0 ; 
        for (int j = 0; j < tamaño; j++) {
            total+=lista_kilometraje[i][j];
        }
        lista_totales[i][1]=total;
    }
    return lista_totales;
}

答案 2 :(得分:1)

以下行有问题

total = lista_kilometraje[i][j] + lista_kilometraje[i][j + 1];

在这个你的j循环迭代到j&lt; n,对于最后一次迭代,您尝试访问j + 1,以便索引不存在。

要么你可以尝试进行循环

j < tamaño-1