Julia:在for循环中创建一个数组

时间:2016-07-07 13:37:38

标签: arrays julia

我想创建一个具有这种结构的数组

k [1] = 1

k [2] = 2

k [3] = 3

k [4] = 4

我用这种方式试了但是它不能正常工作

n= 10

for i in 1:n
 k[i]= i
end

有什么建议吗?

4 个答案:

答案 0 :(得分:5)

获取所需特定阵列的最简单方法是:

k = collect(1:10)

如果要在循环中定义数组,则首先需要预先分配数组,例如:使用k = zeros(10)然后指定值:

n = 10
k = zeros(n)
for i = 1:n
    k[i] = i
end

答案 1 :(得分:4)

你没有初始化数组,所以调用k [1]或k [2]或k [n]不会返回错误

你应该:

n= 10
k = Array(Int64, n) #or Float64 or Any instead of Int64
for i in 1:n
    k[i]= i
end

或者你可以

n= 10
k = []
for i in 1:n
    push!(k,i)
end

我建议前者,如果你能够事先确定数组的大小,那么另一种方法会更合适

答案 2 :(得分:2)

请参阅:https://en.wikibooks.org/wiki/Introducing_Julia/Arrays_and_tuples#Uninitialized

“使用理解和生成器创建数组”

k = [i for i in 1:10]

答案 3 :(得分:-3)

你怎么知道它不起作用?尝试评估k

n= 10

for i in 1:n
 k[i]= i
end

k

10-element Array{Int64,1}: 1 2 3 4 5 6 7 8 9 10

更简洁的做同样事情的方式:

collect(1:10)