我想创建一个具有以下结构的数组
k[1]= 1
k[2]= 2
k[3]= 3
k[4]= 4
我尝试了以下方式,但它没有起作用
n= 10
for i in 1:n
k[i]= i
end
有什么建议吗?
您还没有对数组进行初始化,因此调用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
我建议使用前一种方法,如果你无法预先确定数组的大小,则另一种方法更合适。
k = Int [ ]
。 - David P. SandersArray{Int64}(undef, n)
,创建一个具有设置维度(1维,大小为n)和类型(Int64)的数组,并带有未初始化的值。 - postylemk = collect(1:10)
k = zeros(10)
,然后指定值。n = 10
k = zeros(n)
for i = 1:n
k[i] = i
end
查看: https://en.wikibooks.org/wiki/Introducing_Julia/Arrays_and_tuples#Uninitialized
使用推导式和生成器创建数组。
k = [i for i in 1:10]
你怎么知道它不起作用?尝试评估 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)
k
实际上是在另一个单元格中定义的。 - bit-player
k = -5:5
。然后,您可以执行k[3]
并获得2
,这是范围的第三个元素。 - David P. Sanders