不定长二维数组问题

在提问之前请确定你已经努力阅读了文档,并且尝试自己在互联网上搜索。

请尽可能提供你的demo代码或者GitHub的gist地址。

# code
```请问怎么将一堆长度不一样的一维数据以行放入一个二维数组里面,形成一个行元素长度不确定的二维数组

不知道你的目的是什么,但是可以考虑做数组的数组

为什么不用元组来解决问题呢?

julia是按列的,最好将一维数组放在一列,用最长的数组长度作为二维数组的行数,其余不够长度的一维数组用Missing补齐。

julia> x = [[ones(1,1)]; [2*ones(1,2)]; [3*ones(1,3)]; [4*ones(1,4)]]
4-element Array{Array{Float64,2},1}:
 [1.0]
 [2.0 2.0]
 [3.0 3.0 3.0]
 [4.0 4.0 4.0 4.0]

用自定义数据结构 Array{Array{Float64,2},1} 去设计这种不规则数组即可,索引的时候要注意

julia> x[2,2]
ERROR: BoundsError: attempt to access 4-element Array{Array{Float64,2},1} at index [2, 2]
Stacktrace:
 [1] getindex(::Array{Array{Float64,2},1}, ::Int64, ::Int64) at .\array.jl:730
 [2] top-level scope at none:0

julia> x[2][2]
2.0

这就类似于C语言的二维数组索引方式。类似地可以设计出不规则的三维数组。目前一般来说大家都用张量,这种需求估计只会在特定领域中出现吧。

京ICP备17009874号-2