Преобразование LinRange в массив в Джулии

Я новичок в Julia и пытаюсь преобразовать LinRange в Array для дальнейших вычислений. Например, у меня есть:

julia> x = LinRange(0, 1, 100) 

С выходом:

100-element LinRange{Float64, Int64}: 0.0,0.010101,0.020202,0.030303,0.040404,0.0505051,0.0606061,0.0707071,0.0808081,0.0909091,0.10101,…,0.89899,0.909091,0.919192,0.929293,0.939394,0.949495,0.959596,0.969697,0.979798,0.989899,1.0

Затем я преобразую его в массив, используя:

julia> x = [x]

С выходом:

1-element Vector{LinRange{Float64, Int64}}:  range(0.0, stop=1.0, length=100)

Но когда я пытаюсь получить к нему доступ как к обычному массиву

julia> x[1]

У меня есть весь LinRange в качестве вывода:

100-element LinRange{Float64, Int64}:  0.0,0.010101,0.020202,0.030303,0.040404,0.0505051,0.0606061,0.0707071,0.0808081,0.0909091,0.10101,…,0.89899,0.909091,0.919192,0.929293,0.939394,0.949495,0.959596,0.969697,0.979798,0.989899,1.0

И если я попытаюсь получить доступ ко второму элементу, я получаю эту ошибку:

julia> x[2] 

ERROR: BoundsError: attempt to access 1-element Vector{LinRange{Float64, Int64}} at index [2]

Я понимаю, что надо "спуститься на уровень ниже", но как мне это сделать? Попытка, например, с x[1,1] всегда выводит весь LinRange.

[x] создает «вектор векторов». Другими словами, вы сделали вектор с одним элементом, который является диапазоном, вы вообще не преобразовывали исходный диапазон. Переход «на один уровень вниз» будет x[1][1], а не x[1,1]. Но вы уверены, что вам нужно преобразовать диапазон в первую очередь?
DNF 05.04.2022 17:03
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
1
1
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Использовать:

collect(x)

или

vcat(x)

или

[x;]

Однако вопрос в том, зачем вам Vector. Если вам не нужно его мутировать, более эффективно работать с LinRange.

Другие вопросы по теме