л требуется создать массив, имеющий такой структурыЮлия: создать массивы в течение цикла
к [1] = 1
к [2] = 2
к [3] = 3
к [4] = 4
л пробовал таким образом, но это не работает
n= 10
for i in 1:n
k[i]= i
end
любые предложения?
л требуется создать массив, имеющий такой структурыЮлия: создать массивы в течение цикла
к [1] = 1
к [2] = 2
к [3] = 3
к [4] = 4
л пробовал таким образом, но это не работает
n= 10
for i in 1:n
k[i]= i
end
любые предложения?
У Вас нет инициализируется массив, поэтому при вызове к [1] или к [2] или к [п] не возвратит ошибку
Вы должны либо:
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
Я предлагаю бывший, другой метод будет мор e подходит, если вы не сможете заранее определить размер массива
Мне нравится второй метод, даже если я знаю размер. Однако сначала необходимо определить массив с правильным типом аргумента, например. 'k = Int []' в этом примере. –
Самый простой способ, чтобы получить конкретный массив, который вы хотите это:
k = collect(1:10)
Если вы хотите, чтобы определить массив в цикле, то в первую очередь необходимо предварительно выделить массив, например, используя k = zeros(10)
, а затем указать значения:
n = 10
k = zeros(n)
for i = 1:n
k[i] = i
end
Откуда вы знаете, что он не работает? Попробуйте оценить 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)
В 0.4.6 этот фрагмент будет вызывать UndefVarError, и я подозреваю, что в других версиях тоже. Основная идея состоит в том, что массив не инициализируется в вопросе, и автор просто тестирует Matlab behaivour, где это работает. – RedPointyJackson
Спасибо за объяснение. Смущающая ошибка. Я запустил код в записной книжке Jupyter - где 'k' фактически определен в другой ячейке. –
Вы часто фактически не нужен массив (который занимает память) и может использовать диапазон вместо этого, например, 'k = -5: 5'. Затем вы можете сделать 'k [3]' и получить '2' назад, что является третьим элементом диапазона. –