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

vin*_*cet 0 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
Run Code Online (Sandbox Code Playgroud)

有什么建议 ?

Mic*_*gge 5

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

k = collect(1:10)
Run Code Online (Sandbox Code Playgroud)

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

n = 10
k = zeros(n)
for i = 1:n
    k[i] = i
end
Run Code Online (Sandbox Code Playgroud)


ise*_*arn 5

您尚未初始化数组,因此调用 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
Run Code Online (Sandbox Code Playgroud)

或者你可以

n= 10
k = []
for i in 1:n
    push!(k,i)
end
Run Code Online (Sandbox Code Playgroud)

我建议使用前者,如果您无法事先确定数组的大小,则另一种方法会更合适