如何在Julia中创建不同长度的多维数组

3

我需要通过读取数据集来创建不同长度的数组序列。我需要在循环中调用它们,因此可能需要某种索引以便于调用。例如,我如何创建以下序列:

P[1]=[1 2 3 4]
P[2]=[1 4]
P[3]=[8 9 0 0 5 6]
.
.
.
1个回答

6

这是它:

julia> P = Vector{Vector{Int64}}([[1,2,3,4],[1,4],[8,9,0,0,5,6]])  
3-element Array{Array{Int64,1},1}:                                 
 [1, 2, 3, 4]                                                      
 [1, 4]                                                            
 [8, 9, 0, 0, 5, 6]                                                

julia> P[1]                                                        
4-element Array{Int64,1}:                                          
 1                                                                 
 2                                                                 
 3                                                                 
 4                                                                 

julia> P[2]                                                        
2-element Array{Int64,1}:                                          
 1                                                                 
 4                                                                 

julia> P[3]                                                        
6-element Array{Int64,1}:                                          
 8                                                                 
 9                                                                 
 0                                                                 
 0                                                                 
 5                                                                 
 6                                                                 

如果您想添加一个新元素,请使用push!()

julia> push!(P,[7,8,9])
4-element Array{Array{Int64,1},1}:
 [1, 2, 3, 4]
 [1, 4]
 [8, 9, 0, 0, 5, 6]
 [7, 8, 9]

谢谢,但我的问题是这个序列非常长,我无法手动执行你代码的第一行。 - Reabo
我发现这个代码好像可以用,感谢V=Vector{Vector{Float64}}(100)。 - Reabo
1
没有问题 - 我编辑了我的回答。你可以通过 P = Vector{Vector{Int64}}() 创建一个空的 Array,然后只需要使用 push! 添加数值即可。 - Przemyslaw Szufel
如果您知道Array的大小为Vector{Vector{Int64}}(undef, N),那么使用P[n]=...当然更好(请注意undef)。 - Przemyslaw Szufel
2
初始化为空:P = Vector{Int}[]。如果你已经知道了元素:P = [[1,2,3,4],[1,4],[8,9,0,0,5,6]]。不需要在字面量前指定类型。 - DNF

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接