Список массивов разных размеров в Юлии - PullRequest
3 голосов
/ 03 мая 2020

Я пытаюсь вернуть массив массивов разных размеров в функции Джулии. В этой функции массивы будут инициализированы, и, в al oop, они будут иметь элементы, которые являются другими массивами, помещаемыми в конец массива на каждой итерации. Но я получаю следующую ошибку:

MethodError: no method matching push!(::Type{Array{Array{Float64,1},1}}, ::Array{Float64,1})

Я инициализирую массив массивов:

x = Array{Array{Float64,1},1}

Но когда пу sh! В другом массиве я получаю сообщение об ошибке:

push!(x, y)

В python Я бы просто добавил новые массивы в список и вернул список, как я могу выполнить sh это в Джулии?

1 Ответ

3 голосов
/ 03 мая 2020

Ваше утверждение:

julia> x = Array{Array{Float64,1},1}
Array{Array{Float64,1},1}

присваивает x имя типа.

Чтобы создать экземпляр этого типа, добавьте () после него:

julia> x = Array{Array{Float64,1},1}()
0-element Array{Array{Float64,1},1}

и теперь вы можете push! к нему:

julia> push!(x, [2.5, 3.5])
1-element Array{Array{Float64,1},1}:
 [2.5, 3.5]

Обратите внимание, что вы могли бы начать x с пустым вектором, принимающим векторы Float64 следующим образом:

julia> x = Vector{Float64}[]
0-element Array{Array{Float64,1},1}

Здесь мы используем две функции:

  1. Vector{Float64} - сокращение от Array{Float64, 1}.
  2. Если вы создаете пустой вектор с использованием [] Синтаксис вы можете добавить перед его тип элемента, как я сделал в примере.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...