我想创建一个具有这种结构的数组
k [1] = 1
k [2] = 2
k [3] = 3
k [4] = 4
我用这种方式试了但是它不能正常工作
n= 10
for i in 1:n
k[i]= i
end
有什么建议吗?
答案 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)