如何在Julia中找到多维数组的每个元素的长度?

时间:2018-05-19 21:11:07

标签: arrays julia

假设我们在Julia中有一个n-element Array{Array{Array{Int64,1},1},1},如下所示:

1)元素1:1-element Array{Array{Int64,1},1}: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 . 141, 142, 143, 144, 145, 146, 147, 148, 149, 150]

2)元素2:2-element Array{Array{Int64,1},1}: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 . 41, 42, 43, 44, 45, 46, 47, 48, 49, 50] [51, 52, 53, 54, 55, 56, 57, 58, 59, 60 . 141, 142, 143, 144, 145, 146, 147, 148, 149, 150]

等等。

实际上,每个元素代表几个无向图的连通分量。是否有命令或简单的方法来获取每个最深的数组的长度(连接组件的数量)?那就是:

1)150

2)50 and 100

等等。

谢谢!

1 个答案:

答案 0 :(得分:2)

给出

a = [[rand(3), rand(4)], [rand(5)]]

您已注释的版本将是

julia> map(x -> length.(x), a)
2-element Array{Array{Int64,1},1}:
 [3, 4]
 [5]

或者,我认为以下内容更具可读性:

julia> [[length(x) for x in y] for y in a]
2-element Array{Array{Int64,1},1}:
 [3, 4]
 [5]

但@juliohm是对的,可能有比深层嵌套数组更好的数据结构。如果您正在处理图形问题,也许可以查看LightGraphs.jl