Julia中5维Vector{Int64}数组元素初始化与访问求助
Julia 5维向量数组赋值问题解决办法
你写的v = Array{Vector{Int64}, 5}只是声明了数组的类型,并没有创建可操作的数组实例——这就是赋值无效的核心原因,此时v不是一个能通过索引访问的数组对象。
正确操作分两步:先创建指定大小的5维数组,再给目标位置赋值。
方法1:用undef初始化(高效灵活)
先创建未初始化的数组,再单独赋值空向量:
# 这里以(2,2,2,2,2)为例定义5维数组的尺寸,你可以改成自己需要的大小 v = Array{Vector{Int64}, 5}(undef, 2, 2, 2, 2, 2) # 给第一个位置赋值空向量,两种写法都有效 v[1] = Int64[] # 或者 v[1] = Vector{Int64}()
方法2:批量初始化所有元素为空向量
如果需要数组所有元素一开始都是空向量,用fill更方便:
# 创建(3,3,3,3,3)的5维数组,所有元素都是空Int64向量 v = fill(Int64[], 3, 3, 3, 3, 3) # 后续可以单独修改任意元素,比如 v[1,2,1,1,1] = [1,3,5]
注意:Julia中多维数组的v[1]等价于v[1,1,1,1,1](即每个维度的第一个元素),如果要访问其他位置,需要写出完整的多维索引,比如v[2,1,3,2,1]。
内容的提问来源于stack exchange,提问作者tonythestark
相关产品推荐
相关产品推荐

