Julia - 使用字典键作为多维数组的索引

时间:2016-11-13 14:50:36

标签: julia

我有一个带键的字典,如下所示:

testdict = Dict{Array{Int64,1},Float64}([1,3,1] => 0.0, [2,3,1] => 0.0, [1,3,2] => 0.0, [2,3,2] => -2.64899e-16, [2,1,2] => 0.858307, [1,2,1] => 0.0, [1,2,2] => 0.0, [2,2,1] => 0.0, [2,2,2] => 0.65796, [2,1,1] => -5.81556e-16, [1,1,2] => -3.50541e-16, [1,1,1] => 0.0)

这些键在范围和长度方面都有很大差异,它们在函数开头的数组中初始化我正在编写......它可能看起来像

[2,3,2]

上面的字典......,

[10,3,50,60]

创建一个带键的字典

[1,1,1,1], [1,1,1,12] ... , [10, 3, 50, 59], [10,3, 50, 60]

我需要完成的是通过

创建一个多维数组
result_array = Array(Float64, tuple([2,3,2])

但是我需要用字典中的值填充数组, 所以我需要将元素[1,1,1]设置为

result_array[1,1,1] = 0.0

如何使用字典中的键设置result_array的索引及其所谓的值?

1 个答案:

答案 0 :(得分:4)

按键将result_array[[1,1,1]...]变为result_array[1,1,1]

testdict = Dict{Array{Int64,1},Float64}([1,3,1] => 0.0, [2,3,1] => 0.0, [1,3,2] => 0.0, [2,3,2] => -2.64899e-16, [2,1,2] => 0.858307, [1,2,1] => 0.0, [1,2,2] => 0.0, [2,2,1] => 0.0, [2,2,2] => 0.65796, [2,1,1] => -5.81556e-16, [1,1,2] => -3.50541e-16, [1,1,1] => 0.0)

result_array = Array(Float64,2,3,2)

for (k,v) in testdict
  result_array[k...] = testdict[k]
end