Как найти длину каждого элемента многомерного массива в Юлии? - PullRequest
0 голосов
/ 20 мая 2018

Предположим, у нас есть 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 голосов
/ 20 мая 2018

Учитывая

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, если вы имеете дело с проблемами с графами.

...