Юлия: 2-мерное присвоение массива - PullRequest
0 голосов
/ 30 декабря 2018

Я пытаюсь выполнить присвоение в массиве 2d с помощью вложенного цикла.Я пытаюсь получить доступ к элементам массива следующим образом.Но я получаю ошибку.Я искал, но я не получил результаты.Как я могу назначить Джулию в массив 2d?

for x in 1:total
          for y in 1:W
            @show (x, y)
            if agirliklar[x] <= y

                V[x][y] = getMax(V[x-1][y], degerler[x] + V[x-1][y - agirliklar[x]])


            else
                print("sa")
                V[x][y] = V[x-1][y]
            end
          end
end

BoundsError: попытка доступа к массиву 7 × 6 {Int64,2} по индексу [0]

Мой код

Ошибка

Ответы [ 2 ]

0 голосов
/ 31 декабря 2018

(по крайней мере) две вещи здесь неправильны:

  1. Как говорит @PrzemyslawSzufel, обычные массивы Julia индексируются 1, поэтому вы не можете получить к ним доступ с нулевым индексом.Хотя возможно получить специальные массивы с индексами 0.
  2. Если V является 2D-массивом, как вы говорите, вы не можете получить к нему доступ следующим образом: V[x][y].Вместо этого вы получаете к ним доступ так: V[x, y].Вы можете прочитать больше об этом здесь: https://docs.julialang.org/en/v1/manual/arrays/#man-array-indexing-1
0 голосов
/ 30 декабря 2018

В Julia массивы основаны на 1, а не на 0.

Вы пытаетесь получить доступ к V[x-1], где x может принимать значение 1.

Примечание сайта: всегдапредоставьте минимальный рабочий пример (MWE), а не просто вывод части производственного кода.

...