朱莉娅:二维数组分配

时间:2018-12-30 08:43:29

标签: arrays multidimensional-array julia

我正在尝试使用嵌套循环在2d数组中进行赋值。我正在尝试按以下方式访问数组的元素。但是我错了。我已经搜索过,但是没有得到结果。如何在2d数组中分配Julia?

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:尝试访问索引为[0]的7×6数组{Int64,2}

My code

Error

2 个答案:

答案 0 :(得分:4)

在Julia数组中,数组基于1,而不是0。

您尝试访问V[x-1],其中x可以取值为1

站点注释:始终提供一个最低限度的工作示例(MWE),而不仅仅是倾销部分生产代码。

答案 1 :(得分:3)

(至少)这里有两件事是错误的:

  1. 正如@PrzemyslawSzufel所说,普通的Julia数组是1索引的,因此您不能在索引0处访问它们。尽管可以获取索引为0的特殊数组。
  2. 如果V是2D数组,正如您所说,则不能像这样访问它:V[x][y]。相反,您可以这样访问它们:V[x, y]。您可以在这里阅读有关此内容的更多信息:https://docs.julialang.org/en/v1/manual/arrays/#man-array-indexing-1