You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java矩阵乘法遇ArrayIndexOutOfBoundsException异常求助

矩阵乘法ArrayIndexOutOfBoundsException异常排查与解决

异常原因

问题出在结果矩阵的打印循环里:
你创建的结果矩阵c是row1行、col2列的(符合矩阵乘法规则:m×n 乘 n×p 得到 m×p),但打印时错误地用了col1和row2作为循环边界。

比如测试2×3与3×4的矩阵乘法:

  • row1=2,col2=4,所以c是2行4列
  • 但打印循环写的是for(int i=0;i<col1;i++)(col1=3)、for(int j=0;j<row2;j++)(row2=3)
    当循环到i=2时,c[2][...]就会超出c的行数(只有0、1两行),直接触发ArrayIndexOutOfBoundsException。

而同阶矩阵(比如3×3)时,row1=col1=row2=col2=3,循环边界刚好匹配,所以不会报错。

解决办法

把打印结果矩阵的循环边界,改成用结果矩阵c的实际行列数,也就是row1和col2:

修正后的打印代码片段:

System.out.println("Below is the result matrix: \n");
for(int i=0;i<row1;i++)
{
    for(int j=0;j<col2;j++)
    {
        System.out.print(c[i][j] + " "); // 加空格让矩阵格式更清晰
    }
    System.out.println("");
}

内容的提问来源于stack exchange,提问作者m98a

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 00:52:36