首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组索引越界:矩阵(点积)

数组索引越界:矩阵(点积)
EN

Stack Overflow用户
提问于 2017-10-31 12:06:16
回答 2查看 95关注 0票数 0

使用二维数组来表示矩阵。计算矩阵的乘积,并将数据存储在新的二维数组中。打印矩阵A第2行与矩阵B第1列的乘积。您想要将A和B相乘,得到乘积矩阵C。为简便起见,假设(现在)您只想计算乘积矩阵C中第2行、第1列的值。但是,要计算矩阵C的row2第1列的值,您需要计算A的整个第2行和B的整个第1列的“点积”:

我的程序告诉我,我的数组索引是越界的异常为4,但我不确定如何解决它

代码语言:javascript
复制
public class lab
{
   public static void main(String[] args)
   {

      int[][] A = { {10,55,4,89,39} , {45,9,49,98,23} , {4,8,90,23,9} 
{8,32,80,2,31} };

      int[][] B = { {10,55,4,89,39} , {45,9,49,98,23} , {4,8,90,23,9} , {8,32,80,2,31} };

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

      int sum = 0;

      for (int i = 0 ; i < 5 ; i++)
      {
         sum = sum + A[2][i]*B[i][1];
      }

      C[2][1] = sum;

      System.out.println(sum);

   } // end main
} // end class

输出应为:

1616

EN

回答 2

Stack Overflow用户

发布于 2017-10-31 12:12:31

你的数组A和B都有4个元素,你正在运行循环到5。你需要像下面这样改变for循环。

代码语言:javascript
复制
 for (int i = 0 ; i < 4 ; i++)
票数 0
EN

Stack Overflow用户

发布于 2017-10-31 12:21:39

对于阵列B,您可以t get element of B[4][4]. Maximum will be B[3][4]. array indexes starts from 0. so you have elements. 0,1,2,3. when counter hits 4, you try to get the element B[4] and the index doesnt exist。这就是你得到这个错误的原因。检查附加的图像也。

检查下图

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47027726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档