专栏
标签
代码出现“DimensionMismatch: dimensions must match: ...”问题怎么处理?
技术分享
发布于 2025-10-16 19:28:13
查看 6过去229天

问题现象

运行以下代码,会显示报错

a = [1;2;3;;]
b = [7 8 9;1 2 3;4 5 6]
c = a + b;

报错信息为

DimensionMismatch: dimensions must match: a has dims (Base.OneTo(3), Base.OneTo(1)), b has dims (Base.OneTo(3), Base.OneTo(3)), mismatch at 2

问题原因

这是因为加号两侧的变量矩阵尺寸不一致,其中矩阵a为3行1列,矩阵b为3行3列,在进行加法运算时要求矩阵的维度与尺寸必须一致。

解决方法

基于Julia语言的广播机制,使用“.+”替换“+”即可,修改代码如下:

a = [1;2;3;;]
b = [7 8 9;1 2 3;4 5 6]
c = a .+ b;

返回结果为:

3×3 Matrix{Int64}:
 8  9  10
 3  4   5
 7  8   9

广播机制:将数组参数中低维度的参数扩展,使得其与其他维度匹配,且不会使用额外的内存,并将所给的函数逐元素地应用。

所属专栏:Julia语言
产品信息:Syslab科学计算环境
科学计算

全部回答

暂无数据
暂无数据
用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天