Julia方法python等效列表列表

S_B*_*S_B 7 arrays julia

我刚开始摆弄朱莉娅,我真的很喜欢它.但是,我遇到了路障.例如,在Python中(虽然效率不高或pythonic),我会创建一个空列表并附加已知大小和类型的列表,然后转换为NumPy数组:

Python片段

a = []
for ....
    a.append([1.,2.,3.,4.])

b = numpy.array(a)
Run Code Online (Sandbox Code Playgroud)

我希望能够在朱莉娅做类似的事情,但我似乎无法弄明白.这是我到目前为止:

朱莉娅片段

a = Array{Float64}[]
for .....
    push!(a,[1.,2.,3.,4.])
end
Run Code Online (Sandbox Code Playgroud)

结果是n元素Array{Array{Float64,N},1}的大小(n,),但我希望它是一个nx4 Array{Float64,2}.

有什么建议或更好的方法吗?

Iai*_*ing 5

您的代码的字面翻译将是

# Building up as rows
a = [1. 2. 3. 4.]
for i in 1:3
    a = vcat(a, [1. 2. 3. 4.])
end

# Building up as columns
b = [1.,2.,3.,4.]
for i in 1:3
    b = hcat(b, [1.,2.,3.,4.])
end
Run Code Online (Sandbox Code Playgroud)

但这不是朱莉娅的自然模式,你会做类似的事情

A = zeros(4,4)
for i in 1:4, j in 1:4
    A[i,j] = j
end
Run Code Online (Sandbox Code Playgroud)

甚至

A = Float64[j for i in 1:4, j in 1:4]
Run Code Online (Sandbox Code Playgroud)

基本上一次分配所有内存.