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

Fortran Error #6366:数组表达式形状不匹配问题求助

Fortran矩阵乘法维度不匹配问题解决
  • 报错根源:matmul(ddN, dN)的计算结果是8×8的二维矩阵,如果变量place1的声明维度(比如标量、一维数组、非8×8的二维数组)与该结果不匹配,就会触发Error #6366。
  • 转置操作验证:确保ddN是dN的正确转置。Fortran中需用transpose()函数实现转置,示例:ddN = transpose(dN),避免手动赋值导致维度错误。
  • 正确数组声明示例:
    real, dimension(1,8) :: dN       ! 1行8列的二维数组
    real, dimension(8,1) :: ddN      ! 8行1列的转置数组
    real, dimension(8,8) :: place1   ! 必须声明为8行8列的二维数组,匹配matmul结果维度
    
  • 可运行测试代码:
    program test_matmul
        implicit none
        real, dimension(1,8) :: dN
        real, dimension(8,1) :: ddN
        real, dimension(8,8) :: place1
        
        ! 初始化1×8数组dN
        dN = reshape([1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0], [1,8])
        ! 转置得到8×1数组ddN
        ddN = transpose(dN)
        
        ! 执行矩阵乘法
        place1 = matmul(ddN, dN)
        
        ! 输出结果维度验证
        print *, "place1的维度:", shape(place1)
    end program test_matmul
    
  • 常见错误排查:
    • 错误将place1声明为一维数组(如dimension(64))或标量,与matmul返回的二维矩阵维度不兼容
    • 转置操作错误,比如ddN被误声明为(1,8),此时matmul(ddN,dN)会返回1×1的矩阵,若place1是8×8则触发报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 02:57:45