Предположим, у вас есть:
julia> x = [[i] for i in 1.0:5.0]
5-element Array{Array{Float64,1},1}:
[1.0]
[2.0]
[3.0]
[4.0]
[5.0]
(это эквивалент того, что вы написали выше, но с типами, которые вы запрашиваете).
Вы можете нарезать x
, передав первыйи последний индекс среза.Нижняя и верхняя границы будут включены (также обратите внимание, что Юлия использует индексирование на основе 1):
julia> x[1:2]
2-element Array{Array{Float64,1},1}:
[1.0]
[2.0]
julia> x[2:4]
3-element Array{Array{Float64,1},1}:
[2.0]
[3.0]
[4.0]
Вы можете использовать end
, чтобы указать конец вашей коллекции:
julia> x[3:end]
3-element Array{Array{Float64,1},1}:
[3.0]
[4.0]
[5.0]
Вышеуказанные операции создали новый вектор.Если вы предпочитаете иметь представление, напишите:
julia> @view x[2:4]
3-element view(::Array{Array{Float64,1},1}, 2:4) with eltype Array{Float64,1}:
[2.0]
[3.0]
[4.0]
или
julia> view(x, 2:4)
3-element view(::Array{Array{Float64,1},1}, 2:4) with eltype Array{Float64,1}:
[2.0]
[3.0]
[4.0]
Разница в том, что с макросом @view
вы все равно можете использовать end
, например @view x[2:end]
, но функция view
не поддерживает ее.