我想这样做:
a = [1,2,3,4,5]
print(a[:2])
输出为
[1, 2]
如何在Julia中做同样的事情?但是我的a
的类型是:Array {Array {Float64,1},1}
答案 0 :(得分:4)
假设您拥有:
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
。上限和下限都将包括在内(还请注意,Julia使用基于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
函数不支持。