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

在Julia中使用setindex!赋值时遇维度不匹配问题求助

解决Julia中setindex!的维度不匹配问题

你遇到的维度不匹配错误,是因为错误地将db用[db]包裹,导致传入了一个仅包含1个向量元素的数组,而basic_col_indices指定了2个目标位置,二者元素数量不匹配。

修正方案

直接传入db本身即可(它已经是2元素向量,和目标索引数量完全对应),同时补充原代码中缺失的B定义(从逻辑推断B是A的basic_col_indices列构成的矩阵):

n=4 
A = [ 1.0 2.0 1.0 0.0; 2.0 1.0 0.0 1.0] 
basic_col_indices = [1, 2]
# 补充定义B:取A的指定列构成基矩阵
B = A[:, basic_col_indices]
db = -1 * inv(B) * A[:, 3] 
z = zeros(n) 
# 直接传入db,无需额外包裹
setindex!(z, db, basic_col_indices);

运行后z的结果为:

4-element Vector{Float64}:
  0.3333333333333333
 -0.6666666666666666
  0.0
  0.0

更简洁的写法

Julia支持直接通过索引赋值,效果和setindex!完全一致,更符合惯用语法:

z[basic_col_indices] = db

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 19:22:41