添加矩阵Java

时间:2011-05-19 23:05:37

标签: java matrix

我只是在编写一小段用于添加矩阵的代码。到目前为止,我写的方法是:

public static int[][] matrixAdd(int[][] A, int[][] B)
{
   int[][]C = new int[A.length][A[0].length];

   for(int i =0; i < A.length; i++)
  {
  for(int j=0; j < A[i].length;j++)
  {
     C[i][j] = A[i][j] + B[i][j]; 
  }
}


return C;
}

此代码确实正确添加了矩阵,但是如果传递给此方法的矩阵为空,则会得到索引超出范围的异常。该错误显然与“C”的大小被延迟的线有关。我的逻辑出了什么问题?

2 个答案:

答案 0 :(得分:1)

假设A和B都是具有相同维度的方阵,我认为它会在A[0].length中失败,因为你没有检查边界(即空虚)。

要记住的一点是,Java中的高维数组只是数组的数组,因此它应该按原样处理。

答案 1 :(得分:0)

如果矩阵为空,则声明为

 int[][]C = new int[A.length][A[0].length];

将抛出OutOfBoundsException,因为矩阵A的位置0无效。

两次检查:

 if ((A.length < 0) || (A[0].length < 0)) return B;
 if ((B.length < 0) || (B[0].length < 0)) return A;